From d614d64c5853075ce13f9ef41335b701384b28d0 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Sat, 20 Jun 2026 13:39:09 +0000 Subject: [PATCH] Portal_Union: v1.0.0 (2026-06-20T13:39) --- Portal_Union/MANIFEST.txt | 41 + Portal_Union/VERSION | 1 + Portal_Union/sync-bundle-01.txt | 13411 ++++++++++++++++++++++++++++++ Portal_Union/sync-entpacken.bat | 48 + 4 files changed, 13501 insertions(+) create mode 100644 Portal_Union/MANIFEST.txt create mode 100644 Portal_Union/VERSION create mode 100644 Portal_Union/sync-bundle-01.txt create mode 100644 Portal_Union/sync-entpacken.bat diff --git a/Portal_Union/MANIFEST.txt b/Portal_Union/MANIFEST.txt new file mode 100644 index 0000000..92ae547 --- /dev/null +++ b/Portal_Union/MANIFEST.txt @@ -0,0 +1,41 @@ +# 40 Dateien in 1 Bundles +sync-bundle-01.txt Synchron_test.html +sync-bundle-01.txt VERSION +sync-bundle-01.txt assets/css/portal.css +sync-bundle-01.txt assets/img/polizeistern.png +sync-bundle-01.txt assets/img/portal-readme.png +sync-bundle-01.txt assets/img/portal.png +sync-bundle-01.txt assets/js/admin/historie.js +sync-bundle-01.txt assets/js/admin/navedit.js +sync-bundle-01.txt assets/js/admin/roles.js +sync-bundle-01.txt assets/js/admin/settings.js +sync-bundle-01.txt assets/js/collab/collab.js +sync-bundle-01.txt assets/js/core/core.js +sync-bundle-01.txt assets/js/core/datapflege.js +sync-bundle-01.txt assets/js/core/main.js +sync-bundle-01.txt assets/js/core/modal.js +sync-bundle-01.txt assets/js/data-bao.js +sync-bundle-01.txt assets/js/features/article.js +sync-bundle-01.txt assets/js/features/arztliste.js +sync-bundle-01.txt assets/js/features/bao.js +sync-bundle-01.txt assets/js/features/breadcrumbs.js +sync-bundle-01.txt assets/js/features/commands.js +sync-bundle-01.txt assets/js/features/feed.js +sync-bundle-01.txt assets/js/features/impressum.js +sync-bundle-01.txt assets/js/features/kennwoerter.js +sync-bundle-01.txt assets/js/features/linkcheck.js +sync-bundle-01.txt assets/js/features/linkcol.js +sync-bundle-01.txt assets/js/features/migrate-ui.js +sync-bundle-01.txt assets/js/features/nav.js +sync-bundle-01.txt assets/js/features/panels-edit.js +sync-bundle-01.txt assets/js/features/panels.js +sync-bundle-01.txt assets/js/features/pruefung.js +sync-bundle-01.txt assets/js/features/roster-edit.js +sync-bundle-01.txt assets/js/features/search.js +sync-bundle-01.txt assets/js/features/toc.js +sync-bundle-01.txt assets/js/features/whatsnew.js +sync-bundle-01.txt helfer/Helfer-beenden.bat +sync-bundle-01.txt helfer/Portal-Pflege-starten.bat +sync-bundle-01.txt helfer/hol_bao_medien.ps1 +sync-bundle-01.txt helfer/portal_helfer.ps1 +sync-bundle-01.txt index.html diff --git a/Portal_Union/VERSION b/Portal_Union/VERSION new file mode 100644 index 0000000..3eefcb9 --- /dev/null +++ b/Portal_Union/VERSION @@ -0,0 +1 @@ +1.0.0 diff --git a/Portal_Union/sync-bundle-01.txt b/Portal_Union/sync-bundle-01.txt new file mode 100644 index 0000000..d6cb86c --- /dev/null +++ b/Portal_Union/sync-bundle-01.txt @@ -0,0 +1,13411 @@ +### SYNC-TRANSFER 1/1 -- mit sync-entpacken.bat entpacken +### Base64 +### FILE: Synchron_test.html | 19050 +PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj48aGVhZD48bWV0YSBjaGFyc2V0PSJ1dGYt +OCI+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5p +dGlhbC1zY2FsZT0xIj4KPHRpdGxlPlBvcnRhbCBVbmlvbiAtIFN5bmNocm9uLVRlc3Q8L3RpdGxl +Pgo8c3R5bGU+CiAgYm9keXtmb250OjE0cHgvMS41ICJTZWdvZSBVSSIsc3lzdGVtLXVpLHNhbnMt +c2VyaWY7bWFyZ2luOjA7YmFja2dyb3VuZDojMGYxNzIyO2NvbG9yOiNlN2VlZjd9CiAgaGVhZGVy +e3BhZGRpbmc6MTZweCAyMHB4O2JhY2tncm91bmQ6IzEyM2M2Njtjb2xvcjojZmZmfQogIGhlYWRl +ciBoMXttYXJnaW46MDtmb250LXNpemU6MThweH0KICBoZWFkZXIgLnN1YntvcGFjaXR5Oi44NTtm +b250LXNpemU6MTJweDttYXJnaW4tdG9wOjRweDttYXgtd2lkdGg6OTAwcHh9CiAgbWFpbntwYWRk +aW5nOjE2cHggMjBweDttYXgtd2lkdGg6MTA0MHB4O21hcmdpbjowIGF1dG99CiAgLmJhcntkaXNw +bGF5OmZsZXg7Z2FwOjE0cHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO21hcmdp +bjo4cHggMCAxNHB4fQogIGJ1dHRvbntmb250OmluaGVyaXQ7cGFkZGluZzo4cHggMTRweDtib3Jk +ZXItcmFkaXVzOjhweDtib3JkZXI6MXB4IHNvbGlkICMyYjQ2NjA7YmFja2dyb3VuZDojMWMyYzNm +O2NvbG9yOiNlN2VlZjc7Y3Vyc29yOnBvaW50ZXJ9CiAgYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6 +IzI0M2E1Mn0KICAuc3VtbWFyeXtmb250LXdlaWdodDo2MDB9CiAgLmJhbm5lcntwYWRkaW5nOjEy +cHggMTRweDtib3JkZXItcmFkaXVzOjhweDttYXJnaW46MTBweCAwO2ZvbnQtd2VpZ2h0OjYwMH0K +ICAuYmFubmVyLmVycntiYWNrZ3JvdW5kOiM1YTFmMjQ7Y29sb3I6I2ZmZDlkZDtib3JkZXI6MXB4 +IHNvbGlkICM4YTJmMzh9CiAgLmJhbm5lci5va3tiYWNrZ3JvdW5kOiMxZTRhMmU7Y29sb3I6I2Q2 +ZjVlMDtib3JkZXI6MXB4IHNvbGlkICMyZjdhNGF9CiAgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNv +bGxhcHNlO3dpZHRoOjEwMCU7Zm9udC1zaXplOjEzcHh9CiAgdGgsdGR7dGV4dC1hbGlnbjpsZWZ0 +O3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzI0MzI0NH0KICB0aHtw +b3NpdGlvbjpzdGlja3k7dG9wOjA7YmFja2dyb3VuZDojMTYyMDJlfQogIHRkLm51bXt0ZXh0LWFs +aWduOnJpZ2h0O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztmb250LWZhbWlseTpD +b25zb2xhcyxtb25vc3BhY2V9CiAgLnN0e2ZvbnQtd2VpZ2h0OjcwMDt3aGl0ZS1zcGFjZTpub3dy +YXB9CiAgLm9rIC5zdHtjb2xvcjojNWZkMDhhfQogIC5iYWQgLnN0e2NvbG9yOiNmZjdiODd9CiAg +LmV4dHJhIC5zdHtjb2xvcjojZmZjZjZifQogIHRyLmJhZCB0ZHtiYWNrZ3JvdW5kOiMyYTE0MTh9 +CiAgdHIuZXh0cmEgdGR7YmFja2dyb3VuZDojMmEyNDEwfQogIC5wYXRoe2ZvbnQtZmFtaWx5OkNv +bnNvbGFzLG1vbm9zcGFjZX0KICAubXV0ZWR7b3BhY2l0eTouN30KICAucGlsbHMgc3BhbntkaXNw +bGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjJweCA4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O21hcmdp +bi1yaWdodDo4cHg7Zm9udC1zaXplOjEycHh9Cjwvc3R5bGU+PC9oZWFkPgo8Ym9keT4KPGhlYWRl +cj4KICA8aDE+UG9ydGFsIFVuaW9uIC0gU3luY2hyb24tVGVzdDwvaDE+CiAgPGRpdiBjbGFzcz0i +c3ViIj5MaWVzdCBiZWltIExhZGVuIGRhcyBlY2h0ZSBWZXJ6ZWljaG5pcyB1ZWJlciBkZW4gbGF1 +ZmVuZGVuIEhlbGZlciAoL2FwaS90cmVlKSB1bmQgdmVyZ2xlaWNodCBqZWRlIERhdGVpZ3JvZXNz +ZSBtaXQgZGVuIGhpZXIgaGludGVybGVndGVuIDxiPlNvbGw8L2I+LUdyb2Vzc2VuICg9IFJlcG8t +U3RhbmQgenVtIEJ1aWxkOyBuYWNoIGRlbSBTeW5jIG11c3MgYWxsZXMgaWRlbnRpc2NoIHNlaW4p +LiBGaW5kZXQgPGI+RkVITFQ8L2I+ICh2ZXJnZXNzZW4vbmljaHQgZ2VzeW5jdCksIDxiPlZFUkFM +VEVUPC9iPiAoR3JvZXNzZSBhYndlaWNoZW5kKSB1bmQgPGI+VU5FUldBUlRFVDwvYj4gKHp1IHZp +ZWwpLiBEaWVzZSBTZWl0ZSB1ZWJlciBodHRwOi8vMTI3LjAuMC4xOiZsdDtQb3J0Jmd0Oy9TeW5j +aHJvbl90ZXN0Lmh0bWwgYmVpIGxhdWZlbmRlciBwb3J0YWxfaGVsZmVyLnBzMSBvZWZmbmVuLjwv +ZGl2Pgo8L2hlYWRlcj4KPG1haW4+CiAgPGRpdiBpZD0iYmFubmVyIj48L2Rpdj4KICA8ZGl2IGNs +YXNzPSJiYXIiPgogICAgPGJ1dHRvbiBvbmNsaWNrPSJydW4oKSI+RXJuZXV0IHBydWVmZW48L2J1 +dHRvbj4KICAgIDxzcGFuIGNsYXNzPSJzdW1tYXJ5IiBpZD0ic3VtbWFyeSI+UHJ1ZWZlIC4uLjwv +c3Bhbj4KICAgIDxsYWJlbCBjbGFzcz0ibXV0ZWQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9 +Im9ubHliYWQiIGNoZWNrZWQ+IG51ciBQcm9ibGVtZTwvbGFiZWw+CiAgPC9kaXY+CiAgPHRhYmxl +Pjx0aGVhZD48dHI+PHRoPlN0YXR1czwvdGg+PHRoPkRhdGVpPC90aD48dGggY2xhc3M9Im51bSI+ +U29sbDwvdGg+PHRoIGNsYXNzPSJudW0iPkxva2FsPC90aD48dGggY2xhc3M9Im51bSI+RGlmZjwv +dGg+PC90cj48L3RoZWFkPgogIDx0Ym9keSBpZD0icm93cyI+PC90Ym9keT48L3RhYmxlPgogIDxw +IGNsYXNzPSJtdXRlZCIgaWQ9InN0YW1wIj48L3A+CjwvbWFpbj4KPHNjcmlwdD4KY29uc3QgRVhQ +RUNURUQgPSB7ImFzc2V0cy9jc3MvcG9ydGFsLmNzcyI6IDExNjU3MSwgImFzc2V0cy9pbWcvcG9s +aXplaXN0ZXJuLnBuZyI6IDY2MTkxLCAiYXNzZXRzL2ltZy9wb3J0YWwtcmVhZG1lLnBuZyI6IDY1 +MTEyLCAiYXNzZXRzL2ltZy9wb3J0YWwucG5nIjogMTcxOTMsICJhc3NldHMvanMvYWRtaW4vaGlz +dG9yaWUuanMiOiA3NDEwLCAiYXNzZXRzL2pzL2FkbWluL25hdmVkaXQuanMiOiAxNDE4NywgImFz +c2V0cy9qcy9hZG1pbi9yb2xlcy5qcyI6IDE3MzY2LCAiYXNzZXRzL2pzL2FkbWluL3NldHRpbmdz +LmpzIjogMjQ5NjIsICJhc3NldHMvanMvY29sbGFiL2NvbGxhYi5qcyI6IDE1OTcyLCAiYXNzZXRz +L2pzL2NvcmUvY29yZS5qcyI6IDUzNzEwLCAiYXNzZXRzL2pzL2NvcmUvZGF0YXBmbGVnZS5qcyI6 +IDM1MjgsICJhc3NldHMvanMvY29yZS9tYWluLmpzIjogOTE0NSwgImFzc2V0cy9qcy9jb3JlL21v +ZGFsLmpzIjogNjMyMCwgImFzc2V0cy9qcy9kYXRhLWJhby5qcyI6IDI4NTU0LCAiYXNzZXRzL2pz +L2ZlYXR1cmVzL2FydGljbGUuanMiOiAyNDE1NiwgImFzc2V0cy9qcy9mZWF0dXJlcy9hcnp0bGlz +dGUuanMiOiAxNDgwNywgImFzc2V0cy9qcy9mZWF0dXJlcy9iYW8uanMiOiAxNTkwNiwgImFzc2V0 +cy9qcy9mZWF0dXJlcy9icmVhZGNydW1icy5qcyI6IDI1NDIsICJhc3NldHMvanMvZmVhdHVyZXMv +Y29tbWFuZHMuanMiOiA0MDQ2LCAiYXNzZXRzL2pzL2ZlYXR1cmVzL2ZlZWQuanMiOiAxMjUxMywg +ImFzc2V0cy9qcy9mZWF0dXJlcy9pbXByZXNzdW0uanMiOiAxMzM2MywgImFzc2V0cy9qcy9mZWF0 +dXJlcy9rZW5ud29lcnRlci5qcyI6IDM5NDksICJhc3NldHMvanMvZmVhdHVyZXMvbGlua2NoZWNr +LmpzIjogNzc4MiwgImFzc2V0cy9qcy9mZWF0dXJlcy9saW5rY29sLmpzIjogOTkyMywgImFzc2V0 +cy9qcy9mZWF0dXJlcy9taWdyYXRlLXVpLmpzIjogMjA4NDksICJhc3NldHMvanMvZmVhdHVyZXMv +bmF2LmpzIjogMzU4MTcsICJhc3NldHMvanMvZmVhdHVyZXMvcGFuZWxzLWVkaXQuanMiOiA2ODAy +LCAiYXNzZXRzL2pzL2ZlYXR1cmVzL3BhbmVscy5qcyI6IDc1NDMsICJhc3NldHMvanMvZmVhdHVy +ZXMvcHJ1ZWZ1bmcuanMiOiA4MTc0LCAiYXNzZXRzL2pzL2ZlYXR1cmVzL3Jvc3Rlci1lZGl0Lmpz +IjogMTAxODksICJhc3NldHMvanMvZmVhdHVyZXMvc2VhcmNoLmpzIjogMTMyMTEsICJhc3NldHMv +anMvZmVhdHVyZXMvdG9jLmpzIjogMjgyNSwgImFzc2V0cy9qcy9mZWF0dXJlcy93aGF0c25ldy5q +cyI6IDM0MzMsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvaWNvbnMvZGVmYXVsdC9pY29ucy5qcyI6 +IDg4NzQ2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL2ljb25zL2RlZmF1bHQvaWNvbnMubWluLmpz +IjogODcxOTQsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvaWNvbnMvZGVmYXVsdC9pbmRleC5qcyI6 +IDE5OSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9sYW5ncy9kZS5qcyI6IDE4NTczLCAiYXNzZXRz +L3ZlbmRvci90aW55bWNlL2xpY2Vuc2UubWQiOiAzMDMsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uv +bW9kZWxzL2RvbS9pbmRleC5qcyI6IDE4OSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9tb2RlbHMv +ZG9tL21vZGVsLmpzIjogMjk4MjAzLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL21vZGVscy9kb20v +bW9kZWwubWluLmpzIjogOTc4NzUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGFja2FnZS5qc29u +IjogNjczLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWNjb3JkaW9uL2luZGV4Lmpz +IjogMjExLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWNjb3JkaW9uL3BsdWdpbi5q +cyI6IDM1MjgxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWNjb3JkaW9uL3BsdWdp +bi5taW4uanMiOiAxMzU3MSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Fkdmxpc3Qv +aW5kZXguanMiOiAyMDUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9hZHZsaXN0L3Bs +dWdpbi5qcyI6IDEwMDUxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYWR2bGlzdC9w +bHVnaW4ubWluLmpzIjogNDE0OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2FuY2hv +ci9pbmRleC5qcyI6IDIwMiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2FuY2hvci9w +bHVnaW4uanMiOiA2NDQ3LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYW5jaG9yL3Bs +dWdpbi5taW4uanMiOiAyNjkyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYXV0b2xp +bmsvaW5kZXguanMiOiAyMDgsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9hdXRvbGlu +ay9wbHVnaW4uanMiOiA3NjU5LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvYXV0b2xp +bmsvcGx1Z2luLm1pbi5qcyI6IDMyNjQsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9h +dXRvcmVzaXplL2luZGV4LmpzIjogMjE0LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMv +YXV0b3Jlc2l6ZS9wbHVnaW4uanMiOiA2MjUzLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdp +bnMvYXV0b3Jlc2l6ZS9wbHVnaW4ubWluLmpzIjogMjQ5OSwgImFzc2V0cy92ZW5kb3IvdGlueW1j +ZS9wbHVnaW5zL2F1dG9zYXZlL2luZGV4LmpzIjogMjA4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNl +L3BsdWdpbnMvYXV0b3NhdmUvcGx1Z2luLmpzIjogNzU5OSwgImFzc2V0cy92ZW5kb3IvdGlueW1j +ZS9wbHVnaW5zL2F1dG9zYXZlL3BsdWdpbi5taW4uanMiOiAzMzY1LCAiYXNzZXRzL3ZlbmRvci90 +aW55bWNlL3BsdWdpbnMvY2hhcm1hcC9pbmRleC5qcyI6IDIwNSwgImFzc2V0cy92ZW5kb3IvdGlu +eW1jZS9wbHVnaW5zL2NoYXJtYXAvcGx1Z2luLmpzIjogMzU5MDMsICJhc3NldHMvdmVuZG9yL3Rp +bnltY2UvcGx1Z2lucy9jaGFybWFwL3BsdWdpbi5taW4uanMiOiAxMTE2MCwgImFzc2V0cy92ZW5k +b3IvdGlueW1jZS9wbHVnaW5zL2NvZGUvaW5kZXguanMiOiAxOTYsICJhc3NldHMvdmVuZG9yL3Rp +bnltY2UvcGx1Z2lucy9jb2RlL3BsdWdpbi5qcyI6IDE4OTksICJhc3NldHMvdmVuZG9yL3Rpbnlt +Y2UvcGx1Z2lucy9jb2RlL3BsdWdpbi5taW4uanMiOiA4NzcsICJhc3NldHMvdmVuZG9yL3Rpbnlt +Y2UvcGx1Z2lucy9jb2Rlc2FtcGxlL2luZGV4LmpzIjogMjE0LCAiYXNzZXRzL3ZlbmRvci90aW55 +bWNlL3BsdWdpbnMvY29kZXNhbXBsZS9wbHVnaW4uanMiOiA5NDMyOCwgImFzc2V0cy92ZW5kb3Iv +dGlueW1jZS9wbHVnaW5zL2NvZGVzYW1wbGUvcGx1Z2luLm1pbi5qcyI6IDQ4Mjc5LCAiYXNzZXRz +L3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZGlyZWN0aW9uYWxpdHkvaW5kZXguanMiOiAyMjYsICJh +c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9kaXJlY3Rpb25hbGl0eS9wbHVnaW4uanMiOiAx +MjMwOSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2RpcmVjdGlvbmFsaXR5L3BsdWdp +bi5taW4uanMiOiA0NDc1LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZW1vdGljb25z +L2luZGV4LmpzIjogMjExLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZW1vdGljb25z +L2pzL2Vtb2ppaW1hZ2VzLmpzIjogNDEwMTEyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdp +bnMvZW1vdGljb25zL2pzL2Vtb2ppaW1hZ2VzLm1pbi5qcyI6IDQxNjA5NSwgImFzc2V0cy92ZW5k +b3IvdGlueW1jZS9wbHVnaW5zL2Vtb3RpY29ucy9qcy9lbW9qaXMuanMiOiAxODY5MjEsICJhc3Nl +dHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9lbW90aWNvbnMvanMvZW1vamlzLm1pbi5qcyI6IDE5 +Mjg1NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Vtb3RpY29ucy9wbHVnaW4uanMi +OiAxNzE1NCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Vtb3RpY29ucy9wbHVnaW4u +bWluLmpzIjogNjYwMSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2Z1bGxzY3JlZW4v +aW5kZXguanMiOiAyMTQsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9mdWxsc2NyZWVu +L3BsdWdpbi5qcyI6IDQxMDgwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvZnVsbHNj +cmVlbi9wbHVnaW4ubWluLmpzIjogMTU3MzYsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lu +cy9oZWxwL2luZGV4LmpzIjogMTk2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVs +cC9qcy9pMThuL2tleW5hdi9hci5qcyI6IDYzNTksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1 +Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2JnX0JHLmpzIjogNzE3NSwgImFzc2V0cy92ZW5kb3Iv +dGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvY2EuanMiOiA1MDc0LCAiYXNzZXRz +L3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9jcy5qcyI6IDUwMTMs +ICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2RhLmpz +IjogNDQxMCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXlu +YXYvZGUuanMiOiA1MTEyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9p +MThuL2tleW5hdi9lbC5qcyI6IDc3MzUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9o +ZWxwL2pzL2kxOG4va2V5bmF2L2VuLmpzIjogNDA2OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9w +bHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvZXMuanMiOiA1MDE5LCAiYXNzZXRzL3ZlbmRvci90 +aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9ldS5qcyI6IDQ0MTMsICJhc3NldHMv +dmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2ZhLmpzIjogNTgxOSwg +ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvZmkuanMi +OiA0OTUyLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5h +di9mcl9GUi5qcyI6IDUwNjMsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pz +L2kxOG4va2V5bmF2L2hlX0lMLmpzIjogNTM2NSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn +aW5zL2hlbHAvanMvaTE4bi9rZXluYXYvaGkuanMiOiA3MzIzLCAiYXNzZXRzL3ZlbmRvci90aW55 +bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9oci5qcyI6IDQ5NTgsICJhc3NldHMvdmVu +ZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L2h1X0hVLmpzIjogNDkyOSwg +ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvaWQuanMi +OiA0MzQwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5h +di9pdC5qcyI6IDUyMjYsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kx +OG4va2V5bmF2L2phLmpzIjogNTE0MiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hl +bHAvanMvaTE4bi9rZXluYXYva2suanMiOiA2OTY4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs +dWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9rb19LUi5qcyI6IDQ4MzAsICJhc3NldHMvdmVuZG9y +L3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L21zLmpzIjogNDIyNywgImFzc2V0 +cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvbmJfTk8uanMiOiA0 +Njg3LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9u +bC5qcyI6IDQ2MDksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4v +a2V5bmF2L3BsLmpzIjogNTA3NSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAv +anMvaTE4bi9rZXluYXYvcHRfQlIuanMiOiA0NDYwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs +dWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9wdF9QVC5qcyI6IDQ1NTMsICJhc3NldHMvdmVuZG9y +L3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L3JvLmpzIjogNTA2NiwgImFzc2V0 +cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvcnUuanMiOiA3MTM5 +LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi9zay5q +cyI6IDUxMTgsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5 +bmF2L3NsX1NJLmpzIjogNDc3MSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAv +anMvaTE4bi9rZXluYXYvc3ZfU0UuanMiOiA0NDAwLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs +dWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi90aF9USC5qcyI6IDc3NjcsICJhc3NldHMvdmVuZG9y +L3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5bmF2L3RyLmpzIjogNDcyMywgImFzc2V0 +cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAvanMvaTE4bi9rZXluYXYvdWsuanMiOiA3NjAy +LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvaGVscC9qcy9pMThuL2tleW5hdi92aS5q +cyI6IDUyMjksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9oZWxwL2pzL2kxOG4va2V5 +bmF2L3poX0NOLmpzIjogNDAyMiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2hlbHAv +anMvaTE4bi9rZXluYXYvemhfVFcuanMiOiA0MTMxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs +dWdpbnMvaGVscC9wbHVnaW4uanMiOiAyMzY2NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn +aW5zL2hlbHAvcGx1Z2luLm1pbi5qcyI6IDEwOTQ4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Bs +dWdpbnMvaW1hZ2UvaW5kZXguanMiOiAxOTksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lu +cy9pbWFnZS9wbHVnaW4uanMiOiA0OTE2NywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5z +L2ltYWdlL3BsdWdpbi5taW4uanMiOiAxOTYyNCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn +aW5zL2ltcG9ydGNzcy9pbmRleC5qcyI6IDIxMSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVn +aW5zL2ltcG9ydGNzcy9wbHVnaW4uanMiOiAxMTg5MCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9w +bHVnaW5zL2ltcG9ydGNzcy9wbHVnaW4ubWluLmpzIjogNDA5MiwgImFzc2V0cy92ZW5kb3IvdGlu +eW1jZS9wbHVnaW5zL2luc2VydGRhdGV0aW1lL2luZGV4LmpzIjogMjI2LCAiYXNzZXRzL3ZlbmRv +ci90aW55bWNlL3BsdWdpbnMvaW5zZXJ0ZGF0ZXRpbWUvcGx1Z2luLmpzIjogNjY2NiwgImFzc2V0 +cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2luc2VydGRhdGV0aW1lL3BsdWdpbi5taW4uanMiOiAz +MDY0LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbGluay9pbmRleC5qcyI6IDE5Niwg +ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2xpbmsvcGx1Z2luLmpzIjogNDM2NTAsICJh +c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9saW5rL3BsdWdpbi5taW4uanMiOiAxNjY5OCwg +ImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL2xpc3RzL2luZGV4LmpzIjogMTk5LCAiYXNz +ZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbGlzdHMvcGx1Z2luLmpzIjogNzgzNjgsICJhc3Nl +dHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9saXN0cy9wbHVnaW4ubWluLmpzIjogMjgyOTIsICJh +c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9tZWRpYS9pbmRleC5qcyI6IDE5OSwgImFzc2V0 +cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL21lZGlhL3BsdWdpbi5qcyI6IDQxNTM2LCAiYXNzZXRz +L3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbWVkaWEvcGx1Z2luLm1pbi5qcyI6IDE3NTE2LCAiYXNz +ZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbm9uYnJlYWtpbmcvaW5kZXguanMiOiAyMTcsICJh +c3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9ub25icmVha2luZy9wbHVnaW4uanMiOiAzNjM1 +LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvbm9uYnJlYWtpbmcvcGx1Z2luLm1pbi5q +cyI6IDE1NzEsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wYWdlYnJlYWsvaW5kZXgu +anMiOiAyMTEsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wYWdlYnJlYWsvcGx1Z2lu +LmpzIjogMzcwOSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3BhZ2VicmVhay9wbHVn +aW4ubWluLmpzIjogMTY0NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3ByZXZpZXcv +aW5kZXguanMiOiAyMDUsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wcmV2aWV3L3Bs +dWdpbi5qcyI6IDM1MTAsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9wcmV2aWV3L3Bs +dWdpbi5taW4uanMiOiAxNzQ2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvcXVpY2ti +YXJzL2luZGV4LmpzIjogMjExLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvcXVpY2ti +YXJzL3BsdWdpbi5qcyI6IDE0NDM0LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvcXVp +Y2tiYXJzL3BsdWdpbi5taW4uanMiOiA1NDA2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdp +bnMvc2F2ZS9pbmRleC5qcyI6IDE5NiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3Nh +dmUvcGx1Z2luLmpzIjogMzUyMiwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3NhdmUv +cGx1Z2luLm1pbi5qcyI6IDE2MTAsICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy9zZWFy +Y2hyZXBsYWNlL2luZGV4LmpzIjogMjIzLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMv +c2VhcmNocmVwbGFjZS9wbHVnaW4uanMiOiAzNjE5NywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9w +bHVnaW5zL3NlYXJjaHJlcGxhY2UvcGx1Z2luLm1pbi5qcyI6IDEzNDE5LCAiYXNzZXRzL3ZlbmRv +ci90aW55bWNlL3BsdWdpbnMvdGFibGUvaW5kZXguanMiOiAxOTksICJhc3NldHMvdmVuZG9yL3Rp +bnltY2UvcGx1Z2lucy90YWJsZS9wbHVnaW4uanMiOiAxMTk4NTMsICJhc3NldHMvdmVuZG9yL3Rp +bnltY2UvcGx1Z2lucy90YWJsZS9wbHVnaW4ubWluLmpzIjogNDc5MzEsICJhc3NldHMvdmVuZG9y +L3RpbnltY2UvcGx1Z2lucy92aXN1YWxibG9ja3MvaW5kZXguanMiOiAyMjAsICJhc3NldHMvdmVu +ZG9yL3RpbnltY2UvcGx1Z2lucy92aXN1YWxibG9ja3MvcGx1Z2luLmpzIjogMjk0NSwgImFzc2V0 +cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3Zpc3VhbGJsb2Nrcy9wbHVnaW4ubWluLmpzIjogMTI1 +OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3Zpc3VhbGNoYXJzL2luZGV4LmpzIjog +MjE3LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3BsdWdpbnMvdmlzdWFsY2hhcnMvcGx1Z2luLmpz +IjogMTY3MTksICJhc3NldHMvdmVuZG9yL3RpbnltY2UvcGx1Z2lucy92aXN1YWxjaGFycy9wbHVn +aW4ubWluLmpzIjogNTg5NywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3dvcmRjb3Vu +dC9pbmRleC5qcyI6IDIxMSwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3dvcmRjb3Vu +dC9wbHVnaW4uanMiOiAyMTczMywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9wbHVnaW5zL3dvcmRj +b3VudC9wbHVnaW4ubWluLmpzIjogMTIxNDksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMv +Y29udGVudC9kYXJrL2NvbnRlbnQuY3NzIjogMTc3MCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9z +a2lucy9jb250ZW50L2RhcmsvY29udGVudC5qcyI6IDEyNjcsICJhc3NldHMvdmVuZG9yL3Rpbnlt +Y2Uvc2tpbnMvY29udGVudC9kYXJrL2NvbnRlbnQubWluLmNzcyI6IDEyMTYsICJhc3NldHMvdmVu +ZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC9kZWZhdWx0L2NvbnRlbnQuY3NzIjogMTY4NywgImFz +c2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy9jb250ZW50L2RlZmF1bHQvY29udGVudC5qcyI6IDEy +MDMsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC9kZWZhdWx0L2NvbnRlbnQu +bWluLmNzcyI6IDExNDksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC9kb2N1 +bWVudC9jb250ZW50LmNzcyI6IDE4MjQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29u +dGVudC9kb2N1bWVudC9jb250ZW50LmpzIjogMTMwMywgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9z +a2lucy9jb250ZW50L2RvY3VtZW50L2NvbnRlbnQubWluLmNzcyI6IDEyNDgsICJhc3NldHMvdmVu +ZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC90aW55bWNlLTUtZGFyay9jb250ZW50LmNzcyI6IDE3 +NzMsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvY29udGVudC90aW55bWNlLTUtZGFyay9j +b250ZW50LmpzIjogMTI4MCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy9jb250ZW50L3Rp +bnltY2UtNS1kYXJrL2NvbnRlbnQubWluLmNzcyI6IDEyMTksICJhc3NldHMvdmVuZG9yL3Rpbnlt +Y2Uvc2tpbnMvY29udGVudC93cml0ZXIvY29udGVudC5jc3MiOiAxNzEyLCAiYXNzZXRzL3ZlbmRv +ci90aW55bWNlL3NraW5zL2NvbnRlbnQvd3JpdGVyL2NvbnRlbnQuanMiOiAxMjIzLCAiYXNzZXRz +L3ZlbmRvci90aW55bWNlL3NraW5zL2NvbnRlbnQvd3JpdGVyL2NvbnRlbnQubWluLmNzcyI6IDEx +NzAsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUtZGFyay9jb250ZW50LmNz +cyI6IDI4ODI4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29u +dGVudC5pbmxpbmUuY3NzIjogMjkwNDQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkv +b3hpZGUtZGFyay9jb250ZW50LmlubGluZS5qcyI6IDI2MDc5LCAiYXNzZXRzL3ZlbmRvci90aW55 +bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29udGVudC5pbmxpbmUubWluLmNzcyI6IDI2MDIwLCAi +YXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29udGVudC5qcyI6IDI1 +OTQ2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvY29udGVudC5t +aW4uY3NzIjogMjU4OTQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUtZGFy +ay9za2luLmNzcyI6IDExNzU5OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9veGlk +ZS1kYXJrL3NraW4uanMiOiA5OTE3OCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9v +eGlkZS1kYXJrL3NraW4ubWluLmNzcyI6IDk5MTI5LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3Nr +aW5zL3VpL294aWRlLWRhcmsvc2tpbi5zaGFkb3dkb20uY3NzIjogNTk5LCAiYXNzZXRzL3ZlbmRv +ci90aW55bWNlL3NraW5zL3VpL294aWRlLWRhcmsvc2tpbi5zaGFkb3dkb20uanMiOiA1NjcsICJh +c3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUtZGFyay9za2luLnNoYWRvd2RvbS5t +aW4uY3NzIjogNTA4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL2NvbnRl +bnQuY3NzIjogMjkxMTksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvY29u +dGVudC5pbmxpbmUuY3NzIjogMjkwNDQsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkv +b3hpZGUvY29udGVudC5pbmxpbmUuanMiOiAyNjA3NCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS9z +a2lucy91aS9veGlkZS9jb250ZW50LmlubGluZS5taW4uY3NzIjogMjYwMjAsICJhc3NldHMvdmVu +ZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvY29udGVudC5qcyI6IDI2MTI2LCAiYXNzZXRzL3Zl +bmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL2NvbnRlbnQubWluLmNzcyI6IDI2MDc5LCAiYXNz +ZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL3NraW4uY3NzIjogMTE3NjExLCAiYXNz +ZXRzL3ZlbmRvci90aW55bWNlL3NraW5zL3VpL294aWRlL3NraW4uanMiOiA5OTE1MCwgImFzc2V0 +cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9veGlkZS9za2luLm1pbi5jc3MiOiA5OTEwNiwgImFz +c2V0cy92ZW5kb3IvdGlueW1jZS9za2lucy91aS9veGlkZS9za2luLnNoYWRvd2RvbS5jc3MiOiA1 +OTksICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvc2tpbi5zaGFkb3dkb20u +anMiOiA1NjIsICJhc3NldHMvdmVuZG9yL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvc2tpbi5zaGFk +b3dkb20ubWluLmNzcyI6IDUwOCwgImFzc2V0cy92ZW5kb3IvdGlueW1jZS90aGVtZXMvc2lsdmVy +L2luZGV4LmpzIjogMTk4LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3RoZW1lcy9zaWx2ZXIvdGhl +bWUuanMiOiAxMTczMjY2LCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3RoZW1lcy9zaWx2ZXIvdGhl +bWUubWluLmpzIjogNDQ2NDQxLCAiYXNzZXRzL3ZlbmRvci90aW55bWNlL3RpbnltY2UubWluLmpz +IjogNDU2ODkwLCAiaGVsZmVyL0hlbGZlci1iZWVuZGVuLmJhdCI6IDEzNDksICJoZWxmZXIvUG9y +dGFsLVBmbGVnZS1zdGFydGVuLmJhdCI6IDM4ODQsICJoZWxmZXIvY29udHJhY3QuanNvbiI6IDMw +NjIsICJoZWxmZXIvcG9ydGFsX2hlbGZlci5wczEiOiA1MzUyMCwgImluZGV4Lmh0bWwiOiAxNDc3 +NX07CmNvbnN0IFNUQU1QID0gIlNvbGwgPSBsb2thbGVyIFJlcG8tU3RhbmQgenVtIEJ1aWxkICgy +MjAgRGF0ZWllbiwgNjg3NTQyNiBCeXRlcykiOwovLyBEYXRlaWVuLCBkaWUgbG9rYWwgbGllZ2Vu +IERVRVJGRU4sIGFiZXIgbmljaHQgenVtIFNvbGwgZ2Vob2VyZW4gKGtlaW4gIlVORVJXQVJURVQi +KToKY29uc3QgSUdOT1JFX05BTUVTID0gWyJkYXRhLW5hdi5qcyIsImRhdGEtY29udGVudC5qcyIs +InBvcnRhbF9oZWxmZXIucHkiLCJwb3J0YWwtcGZsZWdlLXN0YXJ0ZW4uc2giLCJhZG1pbnMudHh0 +IiwicmVkYWt0ZXVyZS50eHQiLCJTeW5jaHJvbl90ZXN0Lmh0bWwiXTsKZnVuY3Rpb24gaWdub3Jl +ZChwKXsKICBjb25zdCBiPXAuc3BsaXQoIi8iKS5wb3AoKTsKICBpZihJR05PUkVfTkFNRVMuaW5k +ZXhPZihiKT49MCkgcmV0dXJuIHRydWU7CiAgaWYoL1wuKGJha3xzbmFwfGxvZ3xtZHx0bXApJC9p +LnRlc3QoYikpIHJldHVybiB0cnVlOwogIGlmKGIuY2hhckF0KDApPT09Il8iICYmIGIuc2xpY2Uo +LTMpPT09Ii5weSIpIHJldHVybiB0cnVlOwogIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiBmbXQo +bil7cmV0dXJuIChuPDB8fG49PT1udWxsKT8iLSI6bi50b0xvY2FsZVN0cmluZygiZGUtREUiKTt9 +CmFzeW5jIGZ1bmN0aW9uIHJ1bigpewogIGNvbnN0IHRib2R5PWRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCJyb3dzIik7IHRib2R5LmlubmVySFRNTD0iIjsKICBjb25zdCBiYW5uZXI9ZG9jdW1lbnQu +Z2V0RWxlbWVudEJ5SWQoImJhbm5lciIpOyBiYW5uZXIuaW5uZXJIVE1MPSIiOwogIGNvbnN0IG9u +bHliYWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHliYWQiKS5jaGVja2VkOwogIGxldCBh +Y3R1YWw9e30sIGVuZHBvaW50TWlzc2luZz1mYWxzZSwgdW5yZWFjaGFibGU9ZmFsc2U7CiAgYXN5 +bmMgZnVuY3Rpb24gdHJlZShkaXIpewogICAgY29uc3Qgcj1hd2FpdCBmZXRjaCgiL2FwaS90cmVl +P2Rpcj0iK2VuY29kZVVSSUNvbXBvbmVudChkaXIpLHtjYWNoZToibm8tc3RvcmUifSk7CiAgICBp +ZihyLnN0YXR1cz09PTQwNCl7ZW5kcG9pbnRNaXNzaW5nPXRydWU7cmV0dXJuO30KICAgIGNvbnN0 +IGo9YXdhaXQgci5qc29uKCk7IGlmKGomJmoub2smJmouZmlsZXMpe2ouZmlsZXMuZm9yRWFjaChm +PT5hY3R1YWxbZi5wYXRoXT1mLnNpemUpO30KICB9CiAgdHJ5ewogICAgYXdhaXQgdHJlZSgiYXNz +ZXRzIik7IGF3YWl0IHRyZWUoImhlbGZlciIpOwogICAgY29uc3Qgcj1hd2FpdCBmZXRjaCgiL2Fw +aS9maWxlc2l6ZT9wYXRoPWluZGV4Lmh0bWwiLHtjYWNoZToibm8tc3RvcmUifSk7CiAgICBpZihy +LnN0YXR1cz09PTQwNCl7ZW5kcG9pbnRNaXNzaW5nPXRydWU7fSBlbHNlIHsgY29uc3Qgaj1hd2Fp +dCByLmpzb24oKTsgaWYoaiYmai5vayYmai5leGlzdHMpe2FjdHVhbFsiaW5kZXguaHRtbCJdPWou +c2l6ZTt9IH0KICB9Y2F0Y2goZSl7IHVucmVhY2hhYmxlPXRydWU7IH0KICBpZih1bnJlYWNoYWJs +ZSl7CiAgICBiYW5uZXIuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJiYW5uZXIgZXJyIj5IZWxmZXIg +bmljaHQgZXJyZWljaGJhci4gRGllc2UgU2VpdGUgYml0dGUgdWViZXIgPGI+aHR0cDovLzEyNy4w +LjAuMTombHQ7UG9ydCZndDsvU3luY2hyb25fdGVzdC5odG1sPC9iPiBiZWkgbGF1ZmVuZGVyIHBv +cnRhbF9oZWxmZXIucHMxIG9lZmZuZW4gKG5pY2h0IHBlciBmaWxlOi8vKS48L2Rpdj4nOwogICAg +ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1bW1hcnkiKS50ZXh0Q29udGVudD0iIjsgcmV0dXJu +OwogIH0KICBpZihlbmRwb2ludE1pc3NpbmcpewogICAgYmFubmVyLmlubmVySFRNTD0nPGRpdiBj +bGFzcz0iYmFubmVyIGVyciI+RGVyIEhlbGZlciBrZW5udCAvYXBpL3RyZWUgbmljaHQgLT4gPGI+ +cG9ydGFsX2hlbGZlci5wczEgaXN0IFZFUkFMVEVUPC9iPi4gRXJzdCBIZWxmZXItYmVlbmRlbi5i +YXQsIGRhbm4gcG9ydGFsX2hlbGZlci5wczEgZXJzZXR6ZW4gdW5kIG5ldSBzdGFydGVuLCBkYW5u +IGhpZXIgZXJuZXV0IHBydWVmZW4uPC9kaXY+JzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk +KCJzdW1tYXJ5IikudGV4dENvbnRlbnQ9IiI7IHJldHVybjsKICB9CiAgY29uc3Qgcm93cz1bXTsK +ICBsZXQgb2tOPTAsIGZlaGx0Tj0wLCBhbHROPTAsIGV4dHJhTj0wOwogIGZvcihjb25zdCBwIG9m +IE9iamVjdC5rZXlzKEVYUEVDVEVEKSl7CiAgICBjb25zdCBleHA9RVhQRUNURURbcF0sIGxvYz0o +cCBpbiBhY3R1YWwpP2FjdHVhbFtwXTpudWxsOwogICAgaWYobG9jPT09bnVsbCl7IHJvd3MucHVz +aChbIkZFSExUIiwiYmFkIixwLGV4cCxudWxsXSk7IGZlaGx0TisrOyB9CiAgICBlbHNlIGlmKGxv +YyE9PWV4cCl7IHJvd3MucHVzaChbIlZFUkFMVEVUIiwiYmFkIixwLGV4cCxsb2NdKTsgYWx0Tisr +OyB9CiAgICBlbHNlIHsgb2tOKys7IGlmKCFvbmx5YmFkKSByb3dzLnB1c2goWyJha3R1ZWxsIiwi +b2siLHAsZXhwLGxvY10pOyB9CiAgfQogIGZvcihjb25zdCBwIG9mIE9iamVjdC5rZXlzKGFjdHVh +bCkpewogICAgaWYoIShwIGluIEVYUEVDVEVEKSAmJiAhaWdub3JlZChwKSl7IHJvd3MucHVzaChb +IlVORVJXQVJURVQiLCJleHRyYSIscCxudWxsLGFjdHVhbFtwXV0pOyBleHRyYU4rKzsgfQogIH0K +ICByb3dzLnNvcnQoKGEsYik9Pntjb25zdCBvPXtGRUhMVDowLFZFUkFMVEVUOjEsVU5FUldBUlRF +VDoyLGFrdHVlbGw6M307cmV0dXJuIChvW2FbMF1dLW9bYlswXV0pfHxhWzJdLmxvY2FsZUNvbXBh +cmUoYlsyXSk7fSk7CiAgZm9yKGNvbnN0IHIgb2Ygcm93cyl7CiAgICBjb25zdCB0cj1kb2N1bWVu +dC5jcmVhdGVFbGVtZW50KCJ0ciIpOyB0ci5jbGFzc05hbWU9clsxXTsKICAgIGNvbnN0IGRpZmY9 +KHJbM10hPT1udWxsJiZyWzRdIT09bnVsbCk/Zm10KHJbNF0tclszXSk6Ii0iOwogICAgdHIuaW5u +ZXJIVE1MPSc8dGQgY2xhc3M9InN0Ij4nK3JbMF0rJzwvdGQ+PHRkIGNsYXNzPSJwYXRoIj4nK3Jb +Ml0rJzwvdGQ+PHRkIGNsYXNzPSJudW0iPicrZm10KHJbM10pKyc8L3RkPjx0ZCBjbGFzcz0ibnVt +Ij4nK2ZtdChyWzRdKSsnPC90ZD48dGQgY2xhc3M9Im51bSI+JytkaWZmKyc8L3RkPic7CiAgICB0 +Ym9keS5hcHBlbmRDaGlsZCh0cik7CiAgfQogIGNvbnN0IHByb2JsZW1zPWZlaGx0TithbHROK2V4 +dHJhTjsKICBpZihwcm9ibGVtcz09PTApeyBiYW5uZXIuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJi +YW5uZXIgb2siPkFsbGVzIHN5bmNocm9uOiAnK29rTisnIERhdGVpZW4gc3RpbW1lbi48L2Rpdj4n +OyB9CiAgZWxzZSB7IGJhbm5lci5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJhbm5lciBlcnIiPicr +cHJvYmxlbXMrJyBQcm9ibGVtKGUpOiAnK2ZlaGx0TisnIEZFSExULCAnK2FsdE4rJyBWRVJBTFRF +VCwgJytleHRyYU4rJyBVTkVSV0FSVEVULjwvZGl2Pic7IH0KICBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgic3VtbWFyeSIpLnRleHRDb250ZW50PW9rTisiIG9rLCAiK2ZlaGx0TisiIGZlaGxlbiwg +IithbHROKyIgdmVyYWx0ZXQsICIrZXh0cmFOKyIgdW5lcndhcnRldCAoU29sbDogIitPYmplY3Qu +a2V5cyhFWFBFQ1RFRCkubGVuZ3RoKyIpLiI7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0 +YW1wIikudGV4dENvbnRlbnQ9U1RBTVA7Cn0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHli +YWQiKS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHJ1bik7CnJ1bigpOwo8L3NjcmlwdD4KPC9i +b2R5PjwvaHRtbD4K +### FILE: VERSION | 6 +MS4wLjAK +### FILE: assets/css/portal.css | 116571 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDCtyBMZWl0c3RlbGxlLUluZm9ybWF0aW9u +c3BvcnRhbAogICBwb3J0YWwuY3NzIOKAlCBEZXNpZ25zeXN0ZW0gKE9wcy1EYXNoYm9hcmQsIGhl +bGwgKyBkdW5rZWwpCiAgIEtvbXBsZXR0IG9mZmxpbmUgKGZpbGU6Ly8pLCBrZWluZSBleHRlcm5l +biBSZXNzb3VyY2VuLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRva2VucyAqLwo6cm9vdCB7 +CiAgLS1mb250OiAiU2Vnb2UgVUkiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFJvYm90bywg +IkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS1tb25vOiB1aS1tb25vc3Bh +Y2UsICJDYXNjYWRpYSBNb25vIiwgIkNvbnNvbGFzIiwgIlNGIE1vbm8iLCBNZW5sbywgbW9ub3Nw +YWNlOwoKICAvKiBFY2stUnVuZHVuZ2VuIOKAlCBlaW4gTWFzdGVyICgtLXJhZGl1cykgdHJlaWJ0 +IGRpZSBnYW56ZSBTa2FsYSAoUGhhc2UgMTIsIGRhdGVuZ2V0cmllYmVuIHZpYSBQLlVJX1ZBUlMp +LgogICAgIEJlaG9lcmRlbi1DRCAoUGhhc2UgMTQpOiBydWhpZyAmIG1vZGVyYXQ7IC0tci1tZCA9 +PSAtLXJhZGl1cywgZGllIGFuZGVyZW4gbGVpdGVuIHBlciBjYWxjKCkgYWIKICAgICAtPiA1Lzgv +MTAvMTQgcHggKGRlY2t1bmdzZ2xlaWNoIHp1ciBEZXNpZ24tUmVmZXJlbnopLiBEaWNodGUtUHJl +c2V0IHNrYWxpZXJ0IG51ciAtLXJhZGl1cy4gKi8KICAtLXJhZGl1czogOHB4OwogIC0tci1zbTog +Y2FsYyh2YXIoLS1yYWRpdXMpIC0gM3B4KTsgIC0tci1tZDogdmFyKC0tcmFkaXVzKTsgIC0tci1s +ZzogY2FsYyh2YXIoLS1yYWRpdXMpICsgMnB4KTsgIC0tci14bDogY2FsYyh2YXIoLS1yYWRpdXMp +ICsgNnB4KTsKICAtLXItcGlsbDogOTk5cHg7CiAgLS1zcDogNHB4OwogIC0tcmFpbC1sOiAyNjhw +eDsKICAtLXJhaWwtcjogNTYwcHg7CiAgLS1iYXItaDogNjJweDsKICAtLXJlYWQ6IDc0Y2g7ICAg +ICAgICAgICAgICAgICAvKiBMZXNlYnJlaXRlIGZ1ZXIgQXJ0aWtlbCAoUGhhc2UgOCkgKi8KICAt +LWhlYWRlci1iZzogIzE0NTI5YjsgICAgICAgICAvKiBEZWZhdWx0LUhlYWRlciAoc291dmVyYWVu +ZXMgQmxhdSk7IENELU1hcmtlIHVlYmVyc2NocmVpYnQgdmlhIGFwcGx5QnJhbmRDb2xvcnMgKi8K +ICAtLXJpbmc6IDAgMCAwIDJweCB2YXIoLS1iZyksIDAgMCAwIDRweCB2YXIoLS1icmFuZCk7ICAg +ICAvKiBGb2t1cy1SaW5nIChQaGFzZSA4KSAqLwogIC0tZWFzZTogY3ViaWMtYmV6aWVyKC4yMiwu +NjEsLjM2LDEpOwogIC8qIE1vdGlvbi1Ub2tlbnMgKFBoYXNlIDEyLCBBcHBsZS1ISUcpOiBrbGFy +ZSBEYXVlcm4gKyBEZWNlbC0vYmV0b250ZSBFYXNpbmdzLiBSZWR1Y2VkLU1vdGlvbiBuZXV0cmFs +aXNpZXJ0LiAqLwogIC0tZHVyLTE6IDEyMG1zOyAgLS1kdXItMjogMjAwbXM7ICAtLWR1ci0zOiAz +MjBtczsKICAtLWVhc2Utb3V0OiBjdWJpYy1iZXppZXIoLjMyLC43MiwwLDEpOyAgICAgICAgICAv +KiBzYW5mdGVzIEF1c3NjaHdpbmdlbiAoQXBwbGUtRGVjZWwpICovCiAgLS1lYXNlLWVtcGg6IGN1 +YmljLWJlemllciguNSwxLjMsLjcsMSk7ICAgICAgICAgLyogYmV0b250L2ZlZGVybmQgKFRvZ2ds +ZXMsIFBvcCkgKi8KICAvKiBNYXRlcmlhbGllbiAoUGhhc2UgMTIsIGRlemVudGUgVHJhbnNsdXpl +bnovVmlicmFuY3kpOiBmcm9zdGVkIENocm9tZSDigJQgVG9wYmFyICYgT3ZlcmxheXMuCiAgICAg +SW5oYWx0cy1LYXJ0ZW4gYmxlaWJlbiBvcGFrLiAtLW1hdC1iYXIgZm9sZ3QgZGVyIENELU1hcmtl +ICgtLWhlYWRlci1iZykuIC0tbWF0LXBvcCBwcm8gVGhlbWUuCiAgICAgQmVpIHByZWZlcnMtcmVk +dWNlZC10cmFuc3BhcmVuY3kgLT4gb3Bha2UgRmxhZWNoZW4gKyBCbHVyIDAgKEJsb2NrIHVudGVu +KS4gKi8KICAtLWJsdXItYmFyOiAyMHB4OyAgLS1ibHVyLXBvcDogMTRweDsgIC0tbWF0LXNhdHVy +YXRlOiAxLjY7CiAgLS1tYXQtYmFyOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWhlYWRlci1i +ZykgODYlLCB0cmFuc3BhcmVudCk7CgogIC8qIC0tLSBWaXN1ZWxsZSBJZGVudGl0YWV0IChha2Fk +ZW1pc2NoLXNhY2hsaWNoKTogYmVuYW5udGUgU2thbGVuIHN0YXR0IE1hZ2ljLU51bWJlcnMgLS0t +ICovCiAgLyogVHlwby1Ta2FsYSAoUGhhc2UgMTI6IGFuIEFwcGxlLVJhbXAganVzdGllcnQsIEJh +c2lzIDE1cHgpICovCiAgLS1mcy0yeHM6IDExcHg7ICAgIC0tZnMteHM6IDEycHg7ICAgIC0tZnMt +c206IDEzcHg7ICAgLS1mcy1iYXNlOiAxNXB4OwogIC0tZnMtbWQ6IDE3cHg7ICAgICAtLWZzLWxn +OiAyMHB4OyAgICAtLWZzLXhsOiAyNHB4OyAgIC0tZnMtMnhsOiAzMHB4OwogIC0tbGgtdGlnaHQ6 +IDEuMjU7ICAtLWxoLWJhc2U6IDEuNDc7ICAtLWxoLXJlYWQ6IDEuNjU7CiAgLS10cmFja2luZy10 +aWdodDogLTAuMDEyZW07ICAgLyogbGVpY2h0ZSBuZWdhdGl2ZSBMYXVmd2VpdGUgZnVlciBncm9z +c2UgSGVhZGluZ3MgKEhJRykgKi8KICAtLXRyYWNraW5nLWNhcDogLjA4ZW07ICAgICAgICAvKiB1 +cHBlcmNhc2UtbW9ubyBMYWJlbHMgKFJhaWwtS29lcGZlLCBLYXJ0ZW4pIOKAlCBlbnRzY2hhZXJm +dCAqLwogIC8qIFNwYWNpbmctU2thbGEgKEJhc2lzIC0tc3ApICovCiAgLS1zcC0xOiA0cHg7ICAt +LXNwLTI6IDhweDsgIC0tc3AtMzogMTJweDsgIC0tc3AtNDogMTZweDsgIC0tc3AtNTogMjBweDsg +IC0tc3AtNjogMjRweDsgIC0tc3AtNzogMjhweDsgIC0tc3AtODogMzJweDsKICAvKiBNb2RhbC1H +cm9lc3NlbnN0dWZlbiAobG9lc2VuIGFkLWhvYyBweC1CcmVpdGVuIGFiKSAqLwogIC0tbW9kYWwt +c206IDQ4MHB4OyAgLS1tb2RhbC1tZDogNjQwcHg7ICAtLW1vZGFsLWxnOiA4NjBweDsgIC0tbW9k +YWwteGw6IDExMDBweDsKICAvKiBaLUluZGV4LUxlaXRlciAobG9lc3QgdmVyc3RyZXV0ZSBNYWdp +Yy1OdW1iZXJzIGFiKSAqLwogIC0tei1yYWlsOiA1MDsgIC0tei10b3BiYXI6IDQwOyAgLS16LWRy +b3Bkb3duOiA2MDsgIC0tei1vdmVybGF5OiA4MDsKICAtLXotcG9wb3ZlcjogMTEwMDsgIC0tei1t +b2RhbDogMTIwMDsgIC0tei1saWdodGJveDogMTMwMDsgIC0tei10b2FzdDogMTQwMDsKICAvKiBT +ZW1hbnRpc2NoZSBGbGFlY2hlbi1BbGlhc2UgKHN1YnN0aXR1aWVyZW4gdGhlbWVkIC0tYmcqIHp1 +ciBOdXR6dW5nc3plaXQpICovCiAgLS1zdXJmYWNlLTE6IHZhcigtLWJnKTsgIC0tc3VyZmFjZS0y +OiB2YXIoLS1iZy0yKTsgIC0tc3VyZmFjZS0zOiB2YXIoLS1iZy0zKTsKICAtLW9uLWJyYW5kOiB2 +YXIoLS1hY2NlbnQtaW5rKTsgICAvKiBUZXh0ZmFyYmUgYXVmIEJyYW5kLUZsYWVjaGVuICovCiAg +LS1lbGV2LTM6IHZhcigtLXNoYWRvdyk7ICAgICAgICAgIC8qIE1vZGFsZS9MaWdodGJveCDigJQg +PSBCZXN0YW5kcy1TY2hhdHRlbiAqLwogIC8qIFBERi1TeW1ib2wgYWxzIFNWRy1NYXNrZSAoZnVl +ciBmaWd1cmUuZW1iZWQucGRmOjpiZWZvcmUpICovCiAgLS1wZGYtaWNvOiB1cmwoImRhdGE6aW1h +Z2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3 +Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nYmxhY2snIHN0cm9rZS13aWR0aD0n +Micgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3Bh +dGggZD0nTTE0IDNIN2EyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAw +IDItMlY4WicvJTNFJTNDcGF0aCBkPSdNMTQgM3Y1aDVNOSAxM2g2TTkgMTdoNicvJTNFJTNDL3N2 +ZyUzRSIpOwoKICAvKiBTaWduYWxmYXJiZW4g4oCTIGtvbnN0YW50ZSBDaHJvbWEvSGVsbGlna2Vp +dCwgbnVyIEh1ZSB2YXJpaWVydCAqLwogIC0tZGFuZ2VyOiAgb2tsY2goMC42MiAwLjIwIDI1KTsK +ICAtLWRhbmdlci1kOm9rbGNoKDAuNTIgMC4yMCAyNSk7CiAgLS13YXJuOiAgICBva2xjaCgwLjc3 +IDAuMTQgNzUpOwogIC0tb2s6ICAgICAgb2tsY2goMC43MCAwLjEyIDE2Mik7CiAgLS1pbmZvOiAg +ICBva2xjaCgwLjY4IDAuMTEgMjM1KTsKICAtLXZpb2xldDogIG9rbGNoKDAuNjYgMC4xMyAzMDAp +OwogIC0tdGVhbDogICAgb2tsY2goMC43MCAwLjEwIDIwMCk7Cn0KCi8qIEhFTEwgKFN0YW5kYXJk +KSDigJQgcnVoaWdlcywgaGVsbGVzIEJlaG9lcmRlbi1DRCwgZWluIHNvdXZlcmFlbmVzIEJsYXUg +KFBoYXNlIDE0KS4KICAgV2VydGUgZGVja3VuZ3NnbGVpY2ggenVyIERlc2lnbi1SZWZlcmVuejsg +YmVuYW5udGUgVG9rZW5zICgtLWJyYW5kLXN0cm9uZy8tc29mdCwgLS1jcmVzdCwKICAgLS0qLXNv +ZnQsIC0tZm9jdXMsIC0tc2hhZG93LXNtKSBlcmdhZW56dCwgZGFtaXQgS29tcG9uZW50ZW4gMTox +IHBvcnRpZXJ0IHdlcmRlbiBrb2VubmVuLiAqLwo6cm9vdCwgOnJvb3RbZGF0YS10aGVtZT0ibGln +aHQiXSB7CiAgY29sb3Itc2NoZW1lOiBsaWdodDsKICAtLWJnOiAgICAgICAgI2VjZWZmNDsKICAt +LWJnLTI6ICAgICAgI2ZmZmZmZjsKICAtLWJnLTM6ICAgICAgI2YzZjZmYTsKICAtLWJnLWhvdjog +ICAgI2U4ZWRmNDsKICAtLWxpbmU6ICAgICAgI2RiZTFlYTsKICAtLWxpbmUtMjogICAgI2M0Y2Rk +YTsKICAtLXRleHQ6ICAgICAgIzE1MjAyZTsKICAtLXRleHQtZGltOiAgIzQ1NTc2YzsKICAtLXRl +eHQtZm50OiAgIzcyODM5YTsKICAtLWJyYW5kOiAgICAgICAgIzE0NTI5YjsKICAtLWJyYW5kLTI6 +ICAgICAgIzE0NTI5YjsgICAvKiBnZWZ1ZWxsdGVyIEFremVudCAoPSAtLWJyYW5kIGltIEJlaC4t +Q0QpOyBhcHBseUJyYW5kQ29sb3JzIGxlaXRldCBiZWkgTWFya2UgYWIgKi8KICAtLWJyYW5kLXN0 +cm9uZzogIzBlNDE3YjsKICAtLWJyYW5kLXNvZnQ6ICAgI2U3ZjBmYjsKICAtLWFjY2VudC1pbms6 +I2ZmZmZmZjsKICAtLWNyZXN0OiAgICAgIzEwM2E2YjsgICAgICAvKiBmZXN0ZXMgSWRlbnRpdGFl +dHMtQmxhdSBmdWVycyBMb2dvLUZlbGQgKi8KICAtLWZvY3VzOiAgICAgIzFmNmZkNjsKICAtLWRh +bmdlcjogICAgI2MwMjgzYTsgIC0tZGFuZ2VyLWQ6ICNhMDFlMmU7ICAtLWRhbmdlci1zb2Z0OiAj +ZmRlY2VlOwogIC0td2FybjogICAgICAjOWE2NjA4OyAgLS13YXJuLXNvZnQ6ICNmYmYyZGQ7CiAg +LS1vazogICAgICAgICMxYzdhNGQ7CiAgLS1obC1pbmZvOiAgICMyZjZmYjA7ICAtLWhsLWFsZXJ0 +OiAgI2MwMzkyYjsgIC0taGwtdXJnZW50OiAjYzQ2YTEwOyAgIC8qIE1lbGR1bmdzLUhlcnZvcmhl +YnVuZyAoRWluc3RlbGx1bmdlbikgKi8KICAtLW5mZDogICAgICAgI2I1NjUxZDsgICAvKiBWUy1O +ZkQtRWluc3R1ZnVuZ3MtQmFkZ2UgKi8KICAtLXNoYWRvdy1zbTogMCAxcHggMnB4IHJnYmEoMTUs +MzMsNTUsLjA3KSwgMCAxcHggMXB4IHJnYmEoMTUsMzMsNTUsLjA0KTsKICAtLXNoYWRvdzogICAg +MCAxOHB4IDQ0cHggLTIwcHggcmdiYSgxNSwzMyw1NSwuMzQpLCAwIDRweCAxMnB4IC04cHggcmdi +YSgxNSwzMyw1NSwuMjIpOwogIC0tZ2xvdzogIDAgMCAwIDFweCBjb2xvci1taXgoaW4gb2tsYWIs +IHZhcigtLWJyYW5kKSA0MCUsIHRyYW5zcGFyZW50KTsKICAtLWVsZXYtMTogMCAxcHggMnB4IHJn +YmEoMjAsMzUsNjAsLjA2KSwgMCA4cHggMjBweCAtMTJweCByZ2JhKDIwLDM1LDYwLC4xOCk7ICAg +LyogS2FydGVuICovCiAgLS1lbGV2LTI6IDAgMTRweCAzNnB4IC0xNnB4IHJnYmEoMjAsMzUsNjAs +LjI0KSwgMCA0cHggMTBweCAtNnB4IHJnYmEoMjAsMzUsNjAsLjEyKTsgLyogUG9wb3ZlciAqLwog +IC0tbWF0LXBvcDogdmFyKC0tYmctMik7ICAgLyogUG9wb3Zlci9PdmVybGF5IG9wYWsgKEJlaC4t +Q0QpICovCn0KCi8qIERVTktFTCAoc2FjaGxpY2hlciBVbXNjaGFsdGVyKSAqLwo6cm9vdFtkYXRh +LXRoZW1lPSJkYXJrIl0gewogIGNvbG9yLXNjaGVtZTogZGFyazsKICAtLWJnOiAgICAgICAgIzBm +MTUxZDsKICAtLWJnLTI6ICAgICAgIzE4MjIzMDsKICAtLWJnLTM6ICAgICAgIzFmMmIzYTsKICAt +LWJnLWhvdjogICAgIzI4MzU0NTsKICAtLWxpbmU6ICAgICAgIzJjM2E0YzsKICAtLWxpbmUtMjog +ICAgIzNiNGI2MDsKICAtLXRleHQ6ICAgICAgI2VlZjJmODsKICAtLXRleHQtZGltOiAgI2FhYjhj +OTsKICAtLXRleHQtZm50OiAgIzdhOGE5ZDsKICAtLWJyYW5kOiAgICAgICAgIzZhYTllZjsKICAt +LWJyYW5kLTI6ICAgICAgIzZhYTllZjsKICAtLWJyYW5kLXN0cm9uZzogIzg2YmJmNDsKICAtLWJy +YW5kLXNvZnQ6ICAgcmdiYSgxMDYsMTY5LDIzOSwuMTYpOwogIC0tYWNjZW50LWluazojMGExNDIw +OwogIC0tY3Jlc3Q6ICAgICAjMGMyYTRmOwogIC0tZm9jdXM6ICAgICAjNmFhOWVmOwogIC0tZGFu +Z2VyOiAgICAjZTA1NjZhOyAgLS1kYW5nZXItZDogI2M0M2U1MjsgIC0tZGFuZ2VyLXNvZnQ6IHJn +YmEoMjI0LDg2LDEwNiwuMTYpOwogIC0td2FybjogICAgICAjZTBhODM4OyAgLS13YXJuLXNvZnQ6 +IHJnYmEoMjI0LDE2OCw1NiwuMTYpOwogIC0tb2s6ICAgICAgICAjNDZiZTg2OwogIC0taGwtaW5m +bzogICAjNWFhMGUwOyAgLS1obC1hbGVydDogICNlMDU2NmE7ICAtLWhsLXVyZ2VudDogI2YwYTIz +YTsgICAvKiBNZWxkdW5ncy1IZXJ2b3JoZWJ1bmcgKEVpbnN0ZWxsdW5nZW4pICovCiAgLS1uZmQ6 +ICAgICAgICNkNjk0M2Y7ICAgLyogVlMtTmZELUVpbnN0dWZ1bmdzLUJhZGdlIChEdW5rZWwpICov +CiAgLS1zaGFkb3ctc206IDAgMXB4IDJweCByZ2JhKDAsMCwwLC40KTsKICAtLXNoYWRvdzogICAg +MCAyMnB4IDUwcHggLTIycHggcmdiYSgwLDAsMCwuNzUpLCAwIDRweCAxNHB4IC04cHggcmdiYSgw +LDAsMCwuNik7CiAgLS1nbG93OiAgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0t +YnJhbmQpIDM1JSwgdHJhbnNwYXJlbnQpOwogIC0tZWxldi0xOiAwIDFweCAzcHggcmdiYSgwLDAs +MCwuMzApLCAwIDZweCAxNnB4IC0xMHB4IHJnYmEoMCwwLDAsLjUpOyAgIC8qIEthcnRlbiAqLwog +IC0tZWxldi0yOiAwIDEycHggMzJweCAtMTRweCByZ2JhKDAsMCwwLC42MiksIDAgNHB4IDEwcHgg +LTZweCByZ2JhKDAsMCwwLC40NSk7IC8qIFBvcG92ZXIgKi8KICAtLW1hdC1wb3A6IHZhcigtLWJn +LTIpOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLSBSZXNldCAqLwoqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQpodG1s +LCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9CmJvZHkgewogIG1hcmdpbjogMDsKICBmb250LWZhbWls +eTogdmFyKC0tZm9udCk7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcpOwogIGNvbG9yOiB2YXIoLS10 +ZXh0KTsKICBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS1s +aC1iYXNlKTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICB0ZXh0LXJl +bmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5Owp9Cjo6c2VsZWN0aW9uIHsgYmFja2dyb3VuZDog +dmFyKC0tYnJhbmQtc29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9CmEgeyBjb2xv +cjogaW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CmJ1dHRvbiB7IGZvbnQ6IGluaGVy +aXQ7IGNvbG9yOiBpbmhlcml0OyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlcjogMDsgYmFja2dyb3Vu +ZDogbm9uZTsgfQppbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7IGZvbnQ6IGluaGVyaXQ7IGNvbG9y +OiBpbmhlcml0OyB9Cjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZv +Y3VzKTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IH0K +Ci8qIFJlZHVjZWQtTW90aW9uOiBBbmltYXRpb25lbi9UcmFuc2l0aW9ucy9TbW9vdGgtU2Nyb2xs +IHJlc3Bla3R2b2xsIGFic2NoYWx0ZW4gKFBoYXNlIDgsIGExMXkpLiAqLwpAbWVkaWEgKHByZWZl +cnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBh +bmltYXRpb24tZHVyYXRpb246IC4wMDFtcyAhaW1wb3J0YW50OyBhbmltYXRpb24taXRlcmF0aW9u +LWNvdW50OiAxICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMDAxbXMgIWlt +cG9ydGFudDsgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7IH0KfQoKLyogUmVkdWNl +ZC1UcmFuc3BhcmVuY3k6IE1hdGVyaWFsaWVuIG9wYWsgc2NoYWx0ZW4sIEJsdXIgZW50ZmVybmVu +IChQaGFzZSAxMiwgYTExeSkuICovCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLXRyYW5zcGFyZW5j +eTogcmVkdWNlKSB7CiAgOnJvb3QgeyAtLW1hdC1iYXI6IHZhcigtLWhlYWRlci1iZyk7IC0tbWF0 +LXBvcDogdmFyKC0tYmctMik7IH0KICAudG9wYmFyLCAuY21kLXJlc3VsdHMsIC5hei1wYW5lbCwg +Lm92ZXJsYXktYmcsCiAgZGlhbG9nLmRsZzo6YmFja2Ryb3AsIGRpYWxvZy5tb2RhbDo6YmFja2Ry +b3AgeyBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7IH0KfQoKLyogRGljaHRlLVByZXNldCAoUGhhc2Ug +MTIsIGRhdGVuZ2V0cmllYmVuIHZpYSBQLmFwcGx5RGVuc2l0eSAvIHNldHRpbmdzLnVpLmRlbnNp +dHkpLgogICBEZWZhdWx0IG9obmUgQXR0cmlidXQgPSAiYXVzZ2V3b2dlbiIuIEdyZWlmdCB1ZWJl +ciB3ZW5pZ2UgVG9rZW5zLCBkYWhlciBrb25zaXN0ZW50LiAqLwo6cm9vdFtkYXRhLWRlbnNpdHk9 +ImNvbXBhY3QiXSAgICAgIHsgLS1mcy1iYXNlOiAxNHB4OyAtLXJhZGl1czogNnB4OyAgLS1zcC00 +OiAxM3B4OyAtLXNwLTU6IDE2cHg7IC0tc3AtNjogMjBweDsgfQo6cm9vdFtkYXRhLWRlbnNpdHk9 +ImNvbWZvcnRhYmxlIl0gIHsgLS1mcy1iYXNlOiAxNnB4OyAtLXJhZGl1czogMTFweDsgLS1zcC00 +OiAxOHB4OyAtLXNwLTU6IDI0cHg7IC0tc3AtNjogMzBweDsgfQoKLyogU2Nyb2xsYmFyICovCiog +eyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IHNjcm9sbGJhci1jb2xvcjogdmFyKC0tbGluZS0yKSB0 +cmFuc3BhcmVudDsgfQoqOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6 +IDEwcHg7IH0KKjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1s +aW5lLTIpOyBib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50 +OyBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyB9Cio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRo +dW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1mbnQpOyB9CgoubW9ubyB7IGZvbnQt +ZmFtaWx5OiB2YXIoLS1tb25vKTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsg +fQoubXV0ZWQgeyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9CltoaWRkZW5dIHsgZGlzcGxheTog +bm9uZSAhaW1wb3J0YW50OyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBUFAtUkFITUVOCiAgID09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09ICovCi5hcHAgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBo +ZWlnaHQ6IDEwMHZoOyBvdmVyZmxvdzogaGlkZGVuOyB9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUb3BiYXIgKi8KLnRvcGJh +ciB7CiAgZmxleDogMCAwIHZhcigtLWJhci1oKTsKICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyBnYXA6IDE2cHg7CiAgcGFkZGluZzogMCAxOHB4OwogIC8qIEJlaG9lcmRlbi1D +RCAoUGhhc2UgMTQpOiBydWhpZ2UsIGhlbGxlLCBvcGFrZSBLb3BmbGVpc3RlIChrZWluZSBkdW5r +bGUgTWFya2VuLUJhbmRlLAogICAgIGtlaW4gRnJvc3QpLiBEaWUgQ0QtTWFya2VuZmFyYmUgbGVi +dCBudW4gaW4gLS1icmFuZC9Ba3plbnRlbiwgbmljaHQgaW0gVG9wYmFyLUJhbmQuICovCiAgYmFj +a2dyb3VuZDogdmFyKC0tYmctMik7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxp +bmUpOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogdmFyKC0tei10b3BiYXIpOwp9Ci5i +cmFuZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTFweDsgbWlu +LXdpZHRoOiAwOyB9Ci5sb2dvLXNsb3QgewogIGhlaWdodDogNDRweDsgd2lkdGg6IDQ0cHg7IGZs +ZXg6IDAgMCBhdXRvOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsKICBkaXNwbGF5OiBncmlk +OyBwbGFjZS1pdGVtczogY2VudGVyOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nOiAycHg7CiAg +YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50Owog +IHBvc2l0aW9uOiByZWxhdGl2ZTsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBiYWNrZ3Jv +dW5kIHZhcigtLWR1ci0xKSwgYm94LXNoYWRvdyB2YXIoLS1kdXItMSk7Cn0KLmxvZ28tc2xvdDpo +b3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGJveC1zaGFkb3c6IDAgMCAwIDFweCB2 +YXIoLS1saW5lKTsgfQoubG9nby1zbG90IGltZyB7IGhlaWdodDogMTAwJTsgd2lkdGg6IGF1dG87 +IG1heC13aWR0aDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpbjsgZGlzcGxheTogYmxvY2s7IH0K +LmxvZ28tc2xvdC53b3JkbWFyayBpbWcgeyB3aWR0aDogYXV0bzsgbWF4LXdpZHRoOiAxNTBweDsg +fQoubG9nby1zbG90IC5waCB7IGZvbnQtc2l6ZTogOHB4OyBsaW5lLWhlaWdodDogMS4xOyB0ZXh0 +LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGZvbnQtZmFtaWx5OiB2YXIo +LS1tb25vKTsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBwYWRkaW5nOiAycHg7IH0KLmxvZ28tc2xv +dCBpbnB1dCB7IGRpc3BsYXk6IG5vbmU7IH0KLmJyYW5kLW5hbWUgeyBkaXNwbGF5OiBmbGV4OyBm +bGV4LWRpcmVjdGlvbjogY29sdW1uOyBsaW5lLWhlaWdodDogMS4wNTsgbWluLXdpZHRoOiAwOyBw +YWRkaW5nLXJpZ2h0OiA0cHg7IH0KLmJyYW5kLW5hbWUgYiB7IGZvbnQtc2l6ZTogMThweDsgZm9u +dC13ZWlnaHQ6IDgwMDsgbGV0dGVyLXNwYWNpbmc6IC4xNWVtOyB0ZXh0LXRyYW5zZm9ybTogdXBw +ZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJyYW5kLW5hbWUgc3BhbiB7IGZvbnQtc2l6 +ZTogOS41cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAuMmVtOyB0ZXh0LXRy +YW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9CgoubGFnZS1waWxs +IHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA3cHg7 +CiAgcGFkZGluZzogNnB4IDEycHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7CiAgYmFj +a2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOwogIGZv +bnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQou +bGFnZS1waWxsIC5kb3QgeyB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czog +NTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1vayk7IGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvci1t +aXgoaW4gb2tsY2gsIHZhcigtLW9rKSAyMiUsIHRyYW5zcGFyZW50KTsgYW5pbWF0aW9uOiBwdWxz +ZSAyLjRzIHZhcigtLWVhc2UpIGluZmluaXRlOyB9CkBrZXlmcmFtZXMgcHVsc2UgeyA1MCUgeyBi +b3gtc2hhZG93OiAwIDAgMCA3cHggY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1vaykgMCUsIHRy +YW5zcGFyZW50KTsgfSB9Ci5sYWdlLXBpbGwuYWxlcnQgLmRvdCB7IGJhY2tncm91bmQ6IHZhcigt +LWRhbmdlcik7IGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigt +LWRhbmdlcikgMjQlLCB0cmFuc3BhcmVudCk7IH0KLmxhZ2UtcGlsbCAubGJsLWsgeyBjb2xvcjog +dmFyKC0tdGV4dC1mbnQpOyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IGZvbnQtc2l6ZTogMTBw +eDsgbGV0dGVyLXNwYWNpbmc6IC4xNGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9Cgov +KiBHbG9iYWxlIFN1Y2hlIC8gQ29tbWFuZCDigJQgcnVoaWdlcywgZ2VydW5kZXRlcyBGZWxkIChC +ZWguLUNEKTsgd2VpdGV0IHNpY2ggYmVpIEZva3VzCiAgIGFrdGl2IGF1cyAoZGllIEHigJNaLUJ1 +Y2hzdGFiZW5sZWlzdGUgdGVpbHQgc2ljaCBkaWUgVG9wYmFyLU1pdHRlIGFscyBCZXN0YW5kcy1G +ZWF0dXJlKS4gKi8KLnNlYXJjaCB7CiAgZmxleDogMCAwIGF1dG87IHBvc2l0aW9uOiByZWxhdGl2 +ZTsKICB3aWR0aDogMjYwcHg7IHRyYW5zaXRpb246IHdpZHRoIC4yMnMgdmFyKC0tZWFzZSk7Cn0K +LnNlYXJjaDpmb2N1cy13aXRoaW4geyB3aWR0aDogbWluKDQ4MHB4LCA0MnZ3KTsgfQouc2VhcmNo +LWJveCB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4Owog +IGhlaWdodDogNDJweDsgcGFkZGluZzogMCAxM3B4OwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTMp +OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOwogIGJvcmRlci1yYWRpdXM6IHZhcigt +LXItbWQpOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tZHVyLTEpLCBib3gtc2hhZG93 +IHZhcigtLWR1ci0xKSwgYmFja2dyb3VuZCB2YXIoLS1kdXItMSk7Cn0KLnNlYXJjaC1ib3g6Zm9j +dXMtd2l0aGluIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGJhY2tncm91bmQ6IHZhcigt +LWJnLTIpOyBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tYnJhbmQtc29mdCk7IH0KLnNlYXJj +aC1ib3ggc3ZnIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgZmxleDogMCAwIGF1dG87IGNv +bG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLnNlYXJjaC1ib3ggaW5wdXQgeyBmbGV4OiAxOyBib3Jk +ZXI6IDA7IGJhY2tncm91bmQ6IG5vbmU7IG91dGxpbmU6IG5vbmU7IGZvbnQtc2l6ZTogMTRweDsg +fQouc2VhcmNoLWJveCBpbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogdmFyKC0tdGV4dC1mbnQp +OyB9Ci5zZWFyY2gtYm94ID4gc3BhbiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyB9Ci5rYmQgeyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IGZvbnQtc2l6ZTog +MTFweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJv +cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20p +OyBwYWRkaW5nOiAzcHggN3B4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9CgovKiBUb3BiYXItQWt0 +aW9uZW4gKi8KLnRvcC1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRl +cjsgZ2FwOiA4cHg7IGZsZXg6IDAgMCBhdXRvOyB9Ci5pY29uLWJ0biB7CiAgd2lkdGg6IDQycHg7 +IGhlaWdodDogNDJweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7CiAgZGlzcGxheTogZ3Jp +ZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVy +OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgdHJhbnNp +dGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXItMSkgdmFyKC0tZWFzZS1vdXQpLCBjb2xvciB2YXIo +LS1kdXItMSk7Cn0KLmljb24tYnRuOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQpOyBiYWNrZ3Jv +dW5kOiB2YXIoLS1iZy1ob3YpOyB9Ci5pY29uLWJ0bjphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxl +KC45NCk7IH0KLmljb24tYnRuIHN2ZyB7IHdpZHRoOiAxOXB4OyBoZWlnaHQ6IDE5cHg7IGRpc3Bs +YXk6IGJsb2NrOyB9Ci5pY29uLWJ0biBzcGFuIHsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6 +IGNlbnRlcjsgfSAgIC8qIHBlci1KUyBpbmppemllcnRlIEljb24tU3BhbnMgZXhha3QgbWl0dGln +ICovCi5waWxsLWJ0biB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50 +ZXI7IGdhcDogOHB4OyBoZWlnaHQ6IDQycHg7IHBhZGRpbmc6IDAgMTVweDsKICBib3JkZXItcmFk +aXVzOiB2YXIoLS1yLW1kKTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNv +bGlkIHZhcigtLWxpbmUtMik7CiAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOiAx +M3B4OyBmb250LXdlaWdodDogNjAwOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1ci0x +KSB2YXIoLS1lYXNlLW91dCksIGNvbG9yIHZhcigtLWR1ci0xKSwgYm9yZGVyLWNvbG9yIHZhcigt +LWR1ci0xKTsgfQoucGlsbC1idG46aG92ZXIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IGJhY2tncm91 +bmQ6IHZhcigtLWJnLWhvdik7IH0KLnBpbGwtYnRuIHN2ZyB7IHdpZHRoOiAxN3B4OyBoZWlnaHQ6 +IDE3cHg7IGRpc3BsYXk6IGJsb2NrOyB9Ci5waWxsLWJ0biA+IHNwYW4geyBkaXNwbGF5OiBpbmxp +bmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQoucGlsbC1idG4uYXJtZWQgeyBiYWNrZ3Jv +dW5kOiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm9yZGVyLWNvbG9y +OiB2YXIoLS1icmFuZCk7IH0KLnBpbGwtYnRuLmFybWVkOmhvdmVyIHsgYmFja2dyb3VuZDogdmFy +KC0tYnJhbmQtc3Ryb25nKTsgfQouZGl2aWRlci12IHsgd2lkdGg6IDFweDsgaGVpZ2h0OiAyNnB4 +OyBiYWNrZ3JvdW5kOiB2YXIoLS1saW5lKTsgbWFyZ2luOiAwIDJweDsgfQoKLyogLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQeKAk1ot +UmVnaXN0ZXJsZWlzdGUgKGluIGRlciBUb3BiYXIpICovCi5hei1yYWlsIHsKICBmbGV4OiAxIDEg +YXV0bzsgbWluLXdpZHRoOiAwOyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IG5vd3JhcDsgYWxp +Z24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxcHg7IG92 +ZXJmbG93OiBoaWRkZW47Cn0KLmF6LWxldHRlciB7CiAgZmxleDogMCAwIGF1dG87IG1pbi13aWR0 +aDogMS43ZW07IHBhZGRpbmc6IDNweCA0cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOwog +IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGZvbnQtd2VpZ2h0OiA3MDA7CiAg +Zm9udC1zaXplOiB2YXIoLS1hei1mcywgdmFyKC0tZnMteHMpKTsgICAvKiBhZG1pbi1laW5zdGVs +bGJhciAoUC5VSV9WQVJTIGF6Rm9udFNpemUpICovCiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRh +YnVsYXItbnVtczsgY29sb3I6IHZhcigtLXRleHQtZGltKTsKICBib3JkZXI6IDFweCBzb2xpZCB0 +cmFuc3BhcmVudDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTJzLCBjb2xvciAuMTJzOwp9Ci5h +ei1sZXR0ZXI6aG92ZXI6bm90KDpkaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC0y +KTsgY29sb3I6IHZhcigtLW9uLWJyYW5kKTsgfQouYXotbGV0dGVyOmRpc2FibGVkIHsgY29sb3I6 +IHZhcigtLXRleHQtZm50KTsgb3BhY2l0eTogLjM1OyBjdXJzb3I6IGRlZmF1bHQ7IH0KCi8qID09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09CiAgIEdSSUQtTEFZT1VUCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5zaGVsbCB7CiAgZmxl +eDogMTsgbWluLWhlaWdodDogMDsKICBkaXNwbGF5OiBncmlkOwogIGdyaWQtdGVtcGxhdGUtY29s +dW1uczogdmFyKC0tcmFpbC1sKSBtaW5tYXgoMCwxZnIpIHZhcigtLXJhaWwtcik7CiAgZ2FwOiAw +Owp9Ci5zaGVsbC5jb2xsYXBzZS1sIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwIG1pbm1heCgw +LDFmcikgdmFyKC0tcmFpbC1yKTsgfQouc2hlbGwuY29sbGFwc2UtciB7IGdyaWQtdGVtcGxhdGUt +Y29sdW1uczogdmFyKC0tcmFpbC1sKSBtaW5tYXgoMCwxZnIpIDA7IH0KLnNoZWxsLmNvbGxhcHNl +LWwuY29sbGFwc2UtciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMCBtaW5tYXgoMCwxZnIpIDA7 +IH0KLnJhaWwgeyBvdmVyZmxvdzogaGlkZGVuOyB0cmFuc2l0aW9uOiB3aWR0aCAuMnMgdmFyKC0t +ZWFzZSk7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG1pbi1oZWlnaHQ6 +IDA7IH0KLnJhaWwtbCB7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBiYWNr +Z3JvdW5kOiB2YXIoLS1iZy0yKTsgfQoucmFpbC1yIHsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2 +YXIoLS1saW5lKTsgYmFja2dyb3VuZDogdmFyKC0tYmcpOyB9Ci5jZW50ZXIgeyBtaW4td2lkdGg6 +IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG1pbi1oZWlnaHQ6IDA7 +IGJhY2tncm91bmQ6IHZhcigtLWJnKTsgfQoKLnJhaWwtaGVhZCB7CiAgZmxleDogMCAwIGF1dG87 +IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3Bh +Y2UtYmV0d2VlbjsKICBwYWRkaW5nOiAxNnB4IDE4cHggMTBweDsgZ2FwOiA4cHg7Cn0KLnJhaWwt +aGVhZCBoMiB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNzAwOyBs +ZXR0ZXItc3BhY2luZzogLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2 +YXIoLS10ZXh0LWZudCk7IH0KLnJhaWwtc2Nyb2xsIHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0 +bzsgcGFkZGluZzogMCAxMHB4IDIycHg7IH0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNpZGViYXItTmF2ICovCi5zaWRlLWdy +b3VwIHsgbWFyZ2luLWJvdHRvbTogMnB4OyB9Ci5ncnAtdG9nZ2xlIHsKICB3aWR0aDogMTAwJTsg +ZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA5cHg7CiAgcGFkZGluZzog +OXB4IDEwcHggOXB4IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7CiAgLyogU2VrdGlv +bnMtSGVhZGVyIGhlYmVuIHNpY2ggbGVpY2h0IGZhcmJsaWNoIGFiIChBa3plbnRiYWxrZW4gKyB6 +YXJ0ZSBUw7ZudW5nKS4gKi8KICBjb2xvcjogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFu +ZCkgMzIlLCB2YXIoLS10ZXh0LWRpbSkpOwogIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xj +aCwgdmFyKC0tYnJhbmQpIDUlLCB0cmFuc3BhcmVudCk7CiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xp +ZCBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAzOCUsIHZhcigtLWxpbmUpKTsKICBm +b250LXNpemU6IDExLjVweDsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IC4wNWVt +OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFy +KC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0KSwgY29sb3IgdmFyKC0tZHVyLTEpOwp9Ci5ncnAtdG9n +Z2xlOmhvdmVyIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFuZCkg +MTIlLCB0cmFuc3BhcmVudCk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci8qIERhdGVu +Z2V0cmllYmVuZSBCZXJlaWNoc2ZhcmJlIChOYXYtRWRpdG9yIC0+IHMuY29sb3IpOiBmYXJiaWdl +ciBBa3plbnQgKyBnZXRvZW50ZXIgVGl0ZWwuICovCi5zaWRlLWdyb3VwLmdycC1jb2xvcmVkID4g +LmdycC10b2dnbGUgeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWdycC1jb2xvcik7IHBh +ZGRpbmctbGVmdDogOHB4OyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWdy +cC1jb2xvcikgOSUsIHRyYW5zcGFyZW50KTsgfQouc2lkZS1ncm91cC5ncnAtY29sb3JlZCA+IC5n +cnAtdG9nZ2xlOmhvdmVyIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1n +cnAtY29sb3IpIDE2JSwgdHJhbnNwYXJlbnQpOyB9Ci8qIFRpdGVsIHp1bSBUZXh0LVRva2VuIGhp +biBtaXNjaGVuIC0+IGluIEhlbGwgVU5EIER1bmtlbCBsZXNiYXIgKFdDQUcpLCBibGVpYnQgZGF0 +ZW5nZXRyaWViZW4uICovCi5zaWRlLWdyb3VwLmdycC1jb2xvcmVkID4gLmdycC10b2dnbGUgPiBz +cGFuOmZpcnN0LW9mLXR5cGUgeyBjb2xvcjogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1ncnAt +Y29sb3IpIDQ1JSwgdmFyKC0tdGV4dCkpOyB9Ci5ncnAtdG9nZ2xlIC5jaGV2IHsgbWFyZ2luLWxl +ZnQ6IGF1dG87IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2UpOyBjb2xvcjog +dmFyKC0tdGV4dC1mbnQpOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfQovKiBDaGV2cm9uLUZpeDog +SW5saW5lLVNWRyBvaG5lIEdyb2Vzc2VuYXR0cmlidXRlIHp3aW5nZW5kIHNrYWxpZXJlbiAoc29u +c3Qgcmllc2lnKS4gKi8KLmdycC10b2dnbGUgLmNoZXYgc3ZnLCAuc3ViLXRvZ2dsZSAuY2hldiBz +dmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBkaXNwbGF5OiBibG9jazsgfQouZ3JwLXRv +Z2dsZVthcmlhLWV4cGFuZGVkPSJ0cnVlIl0gLmNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRl +Zyk7IH0KLmdycC10b2dnbGUgPiBzdmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBjb2xv +cjogdmFyKC0tYnJhbmQpOyB9Ci5zaWRlLWxpc3QgeyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46 +IDJweCAwIDhweDsgcGFkZGluZzogMDsgfQouc2lkZS1saXN0LnN1YiB7IG1hcmdpbi1sZWZ0OiAx +MXB4OyBwYWRkaW5nLWxlZnQ6IDExcHg7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbGlu +ZSk7IH0KLnNpZGUtbGlzdCBsaSB7IG1hcmdpbjogMXB4IDA7IH0KLnNpZGUtbGlzdCBhLCAuc2lk +ZS1saXN0IC5zdWItdG9nZ2xlIHsKICB3aWR0aDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24t +aXRlbXM6IGNlbnRlcjsgZ2FwOiA5cHg7CiAgcGFkZGluZzogN3B4IDEwcHg7IGJvcmRlci1yYWRp +dXM6IHZhcigtLXItc20pOwogIGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGZvbnQtc2l6ZTogMTMu +NXB4OwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0 +KSwgY29sb3IgdmFyKC0tZHVyLTEpOwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KLnNpZGUtbGlzdCBh +OmhvdmVyLCAuc2lkZS1saXN0IC5zdWItdG9nZ2xlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0t +YmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQovKiBBa3RpdmVyIEVpbnRyYWcgPSBnZXRvZW50 +ZSBQaWxsZSArIEluc2V0LUJhbGtlbiAoQmVoLi1DRCkuICovCi5zaWRlLWxpc3QgYS5pcy1jdXJy +ZW50IHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZC1z +dHJvbmcpOyBmb250LXdlaWdodDogNjAwOyBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHZhcigt +LWJyYW5kKTsgfQouc2lkZS1saXN0IGEuaXMtY3VycmVudCA+IHN2ZyB7IGNvbG9yOiB2YXIoLS1i +cmFuZCk7IH0KLyogQWt6ZW50LUVpbnRyYWcgKHouQi4gS2VubnfDtnJ0ZXIpIOKAlCBoZWJ0IHNp +Y2ggYWxzIEJ1dHRvbiB2b20gUmVzdCBhYi4gKi8KLnNpZGUtbGlzdCBhLm5hdi1hY2NlbnQgeyBi +YWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAxMSUsIHZhcigtLWJn +LTIpKTsgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFuZCkg +MzIlLCB2YXIoLS1saW5lKSk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyBmb250LXdlaWdo +dDogNjAwOyB9Ci5zaWRlLWxpc3QgYS5uYXYtYWNjZW50OmhvdmVyIHsgYmFja2dyb3VuZDogY29s +b3ItbWl4KGluIG9rbGNoLCB2YXIoLS1icmFuZCkgMTglLCB2YXIoLS1iZy0yKSk7IGNvbG9yOiB2 +YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci5zaWRlLWxpc3QgYS5uYXYtYWNjZW50ID4gLmxpLWljIHsg +Y29sb3I6IHZhcigtLWJyYW5kKTsgfQovKiBQcsO8ZnVuZ3MtTGluazogcm90LCBwdWxzaWVyZW5k +IChBdWZtZXJrc2Fta2VpdCkuICovCi5zaWRlLWxpc3QgYS5uYXYtcHJ1ZWYgeyBwb3NpdGlvbjog +cmVsYXRpdmU7IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tZGFuZ2VyKSAx +NiUsIHZhcigtLWJnLTIpKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFuZ2VyKTsgY29sb3I6 +IHZhcigtLWRhbmdlcik7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLnNpZGUtbGlzdCBhLm5hdi1wcnVl +ZiA+IC5saS1pYyB7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5zaWRlLWxpc3QgYS5uYXYtcHJ1 +ZWY6OmFmdGVyIHsgY29udGVudDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJv +cmRlci1yYWRpdXM6IGluaGVyaXQ7IHBvaW50ZXItZXZlbnRzOiBub25lOyBib3gtc2hhZG93OiAw +IDAgMCAzcHggY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1kYW5nZXIpIDU1JSwgdHJhbnNwYXJl +bnQpOyBhbmltYXRpb246IHBydWVmLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0K +QGtleWZyYW1lcyBwcnVlZi1wdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogLjI7IH0gNTAlIHsg +b3BhY2l0eTogMTsgfSB9Ci5zaWRlLWxpc3QgYS5uYXYtcHJ1ZWY6aG92ZXIgeyBiYWNrZ3JvdW5k +OiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWRhbmdlcikgMjQlLCB2YXIoLS1iZy0yKSk7IH0K +OnJvb3RbZGF0YS1ub3B1bHNlXSAuc2lkZS1saXN0IGEubmF2LXBydWVmOjphZnRlciB7IGFuaW1h +dGlvbjogbm9uZTsgb3BhY2l0eTogLjU1OyB9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlv +bjogcmVkdWNlKSB7IC5zaWRlLWxpc3QgYS5uYXYtcHJ1ZWY6OmFmdGVyIHsgYW5pbWF0aW9uOiBu +b25lOyBvcGFjaXR5OiAuNTU7IH0gfQouc2lkZS1saXN0IGEgLmxibCwgLnN1Yi10b2dnbGUgLmxi +bCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxv +dzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLnNpZGUtbGlzdCBhID4gc3ZnLCAu +c3ViLXRvZ2dsZSA+IHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IGZsZXg6IDAgMCBh +dXRvOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9Ci5zdWItdG9nZ2xlIC5jaGV2IHsgbWFyZ2lu +LWxlZnQ6IGF1dG87IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2UpOyBjb2xv +cjogdmFyKC0tdGV4dC1mbnQpOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfQouc3ViLXRvZ2dsZVth +cmlhLWV4cGFuZGVkPSJ0cnVlIl0gLmNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0K +LmdycC1oZWFkIHsgcGFkZGluZzogOXB4IDEwcHggM3B4OyBmb250LXNpemU6IDEwLjVweDsgZm9u +dC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IC4wN2VtOyB0ZXh0LXRyYW5zZm9ybTogdXBw +ZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9Ci5zaWRlLWxpc3QgLm11dGVkIHsgcGFk +ZGluZzogN3B4IDEwcHg7IGZvbnQtc2l6ZTogMTIuNXB4OyB9CgovKiBJbmxpbmUtQWt0aW9uc2tu +b3BmIGluIGRlciBOYXZpZ2F0aW9uc2xpc3RlIChBcnRpa2VsIGJlYXJiZWl0ZW4pICovCi5zdGFy +IHsgbWFyZ2luLWxlZnQ6IGF1dG87IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IGJvcmRlci1y +YWRpdXM6IDVweDsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgY29sb3I6IHZh +cigtLXRleHQtZm50KTsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogLjEyczsgZmxleDogMCAwIGF1 +dG87IH0KLnNpZGUtbGlzdCBsaTpob3ZlciAuc3RhciB7IG9wYWNpdHk6IDE7IH0KLnN0YXI6aG92 +ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0td2Fybik7IH0KLnN0 +YXIgc3ZnIHsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgfQoKLyogQmFkZ2VzICovCi5iYWRn +ZSB7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDcwMDsgcGFkZGluZzogMnB4IDdweDsg +Ym9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBsaW5l +LWhlaWdodDogMS40OyBmbGV4OiAwIDAgYXV0bzsgfQouYmFkZ2UucmVkLCAuYmFkZ2UuZGFuZ2Vy +IHsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsgY29sb3I6ICNmZmY7IH0KLmJhZGdlLm5ldSB7 +IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyB9Ci5i +YWRnZS5icm9rZW4geyBiYWNrZ3JvdW5kOiB2YXIoLS13YXJuLXNvZnQpOyBjb2xvcjogdmFyKC0t +d2Fybik7IH0KLmJhZGdlLmV4dCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFy +KC0tdGV4dC1mbnQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyB9Ci5iYWRnZS5h +bGlhcyB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBjb2xvcjogdmFyKC0tYnJhbmQt +c3Ryb25nKTsgfQouaXMtYnJva2VuIHsgb3BhY2l0eTogLjU1OyB9CgovKiA9PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog +ICBDRU5URVIgwrcgRkVFRAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwouZmVlZC1oZWFkIHsgZmxleDogMCAw +IGF1dG87IHBhZGRpbmc6IDE4cHggMjZweCAwOyB9Ci5mZWVkLXRpdGxlIHsgZGlzcGxheTogZmxl +eDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBnYXA6IDEycHg7IGZsZXgtd3JhcDogd3JhcDsgfQou +ZmVlZC10aXRsZSBoMSB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAyMnB4OyBmb250LXdlaWdodDog +NzAwOyBsZXR0ZXItc3BhY2luZzogLS4wMWVtOyB9Ci5mZWVkLXRpdGxlIC5zdWIgeyBjb2xvcjog +dmFyKC0tdGV4dC1mbnQpOyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IGZvbnQtc2l6ZTogMTEu +NXB4OyBsZXR0ZXItc3BhY2luZzogLjA2ZW07IH0KLmZlZWQtdG9vbHMgeyBkaXNwbGF5OiBmbGV4 +OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbjogMTRweCAwIDRweDsgZmxl +eC13cmFwOiB3cmFwOyB9CgouZmVlZC1zZWFyY2ggeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyBnYXA6IDhweDsgaGVpZ2h0OiAzNHB4OyBwYWRkaW5nOiAwIDExcHg7IGJhY2tn +cm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVy +LXJhZGl1czogdmFyKC0tci1zbSk7IHdpZHRoOiAyMTBweDsgfQouZmVlZC1zZWFyY2g6Zm9jdXMt +d2l0aGluIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmZlZWQtc2VhcmNoIHN2ZyB7 +IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLmZl +ZWQtc2VhcmNoIGlucHV0IHsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiBub25lOyBvdXRsaW5lOiBu +b25lOyB3aWR0aDogMTAwJTsgZm9udC1zaXplOiAxM3B4OyB9CgovKiDigJ4rIE1lbGR1bmciLUFr +dGlvbnNsZWlzdGUg4oCUIG51ciBpbSBQZmxlZ2UtTW9kdXMgKERhdGVucGZsZWdlIGFrdGl2KSwg +RmVlZC1BbnNpY2h0IChQaGFzZSAxMikuICovCi8qIEFrdGlvbnNsZWlzdGUgbWl0IOKAnisgTWVs +ZHVuZyIgcmVjaHRzYnVlbmRpZywgYW4gZGVyIDk4MGVyIEluaGFsdHNzcGFsdGUgYXVzZ2VyaWNo +dGV0LiAqLwouZmVlZC1hY3Rpb25iYXIgeyBkaXNwbGF5OiBub25lOyBqdXN0aWZ5LWNvbnRlbnQ6 +IGZsZXgtZW5kOyBwYWRkaW5nOiB2YXIoLS1zcC00KSAzMHB4IDA7IG1heC13aWR0aDogOTgwcHg7 +IG1hcmdpbi1pbmxpbmU6IGF1dG87IH0KYm9keS5lZGl0aW5nIC5jZW50ZXI6bm90KC5kb2MpOm5v +dCguYXJ0aWNsZSkgLmZlZWQtYWN0aW9uYmFyIHsgZGlzcGxheTogZmxleDsgfQouZmVlZC1zY3Jv +bGwgeyBmbGV4OiAxOyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAyNHB4IDMwcHggNjRweDsg +fQovKiBJbmhhbHRzc3BhbHRlIHJ1aGlnIG1pdHRpZyBiZWdyZW56ZW4gKEJlaC4tQ0QpLiAqLwoj +ZmVlZC1zY3JvbGwgPiAjZmVlZCB7IG1heC13aWR0aDogOTgwcHg7IG1hcmdpbi1pbmxpbmU6IGF1 +dG87IH0KLmZlZWQtc2VjdGlvbi1sYWJlbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBj +ZW50ZXI7IGdhcDogOXB4OyBtYXJnaW46IDE4cHggMnB4IDEycHg7IGZvbnQtc2l6ZTogdmFyKC0t +ZnMtc20pOyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMDsgY29sb3I6IHZhcigt +LXRleHQtZGltKTsgfQouZmVlZC1zZWN0aW9uLWxhYmVsOjphZnRlciB7IGNvbnRlbnQ6ICIiOyBm +bGV4OiAxOyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogdmFyKC0tbGluZSk7IH0KLmZlZWQtc2Vj +dGlvbi1sYWJlbCBzdmcgeyB3aWR0aDogMTNweDsgaGVpZ2h0OiAxM3B4OyBjb2xvcjogdmFyKC0t +d2Fybik7IH0KCi8qIEJ1bGxldGluLUthcnRlICovCi5idWxsIHsKICBwb3NpdGlvbjogcmVsYXRp +dmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5l +KTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgcGFkZGluZzogMThweCAyMHB4IDE2cHg7 +IG1hcmdpbi1ib3R0b206IDEzcHg7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsgdHJh +bnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXMsIGJveC1zaGFkb3cgLjE1czsKfQouYnVsbDpob3Zl +ciB7IGJvcmRlci1jb2xvcjogdmFyKC0tbGluZS0yKTsgfQouYnVsbC5waW5uZWQgeyBib3JkZXIt +Y29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0td2FybikgMzAlLCB2YXIoLS1saW5lKSk7 +IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0td2FybikgNCUsIHZhcigtLWJn +LTIpKTsgfQovKiBIZXJ2b3JoZWJ1bmcgKFdpY2h0aWdrZWl0KSDigJQgRmFyYmVuIGRhdGVuZ2V0 +cmllYmVuICgtLWhsLSogdmlhIEVpbnN0ZWxsdW5nZW4sIHBybyBUaGVtZSkuICovCi5idWxsLmhs +LWluZm8gICB7IGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1obC1pbmZv +KSA0NSUsIHZhcigtLWxpbmUpKTsgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFy +KC0taGwtaW5mbykgOCUsIHZhcigtLWJnLTIpKTsgIGJveC1zaGFkb3c6IGluc2V0IDRweCAwIDAg +dmFyKC0taGwtaW5mbyk7IH0KLmJ1bGwuaGwtYWxlcnQgIHsgYm9yZGVyLWNvbG9yOiBjb2xvci1t +aXgoaW4gb2tsYWIsIHZhcigtLWhsLWFsZXJ0KSA1MCUsIHZhcigtLWxpbmUpKTsgYmFja2dyb3Vu +ZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1obC1hbGVydCkgOSUsIHZhcigtLWJnLTIpKTsg +Ym94LXNoYWRvdzogaW5zZXQgNHB4IDAgMCB2YXIoLS1obC1hbGVydCk7IH0KLmJ1bGwuaGwtdXJn +ZW50IHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1obC11cmdlbnQpOyBiYWNrZ3JvdW5kOiBjb2xvci1t +aXgoaW4gb2tsYWIsIHZhcigtLWhsLXVyZ2VudCkgMTMlLCB2YXIoLS1iZy0yKSk7IGJveC1zaGFk +b3c6IGluc2V0IDRweCAwIDAgdmFyKC0taGwtdXJnZW50KTsgfQovKiBQdWxzIEdQVS1zY2hvbmVu +ZDogc3RhdGlzY2hlciBSaW5nIGF1ZiA6OmFmdGVyLCBudXIgb3BhY2l0eSB3aXJkIGFuaW1pZXJ0 +IChrZWluIERhdWVyLVJlcGFpbnQpLiAqLwouYnVsbC5obC11cmdlbnQ6OmFmdGVyIHsgY29udGVu +dDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJvcmRlci1yYWRpdXM6IGluaGVy +aXQ7IHBvaW50ZXItZXZlbnRzOiBub25lOwogIGJveC1zaGFkb3c6IDAgMCAwIDNweCBjb2xvci1t +aXgoaW4gb2tsYWIsIHZhcigtLWhsLXVyZ2VudCkgNTUlLCB0cmFuc3BhcmVudCk7IGFuaW1hdGlv +bjogYnVsbC1wdWxzZSAxLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9CkBrZXlmcmFtZXMgYnVs +bC1wdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogLjI1OyB9IDUwJSB7IG9wYWNpdHk6IDE7IH0g +fQovKiBQdWxzIGdsb2JhbCBhYnNjaGFsdGJhciAoRWluc3RlbGx1bmdlbiAtPiBNb2R1bGU6ICJX +aWNodGlnLU1lbGR1bmdlbiBwdWxzaWVyZW4iKS4gKi8KOnJvb3RbZGF0YS1ub3B1bHNlXSAuYnVs +bC5obC11cmdlbnQ6OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyBvcGFjaXR5OiAuNjsgfQpAbWVk +aWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogIC5idWxsLmhsLXVyZ2VudDo6 +YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IG9wYWNpdHk6IC42OyB9Cn0KLyogSGVydm9yaGVidW5n +cy1BdXN3YWhsIGltIE1lbGR1bmdzLURpYWxvZyAqLwouaGwtcGljayB7IGRpc3BsYXk6IGZsZXg7 +IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmhsLW9wdCB7IGRpc3BsYXk6IGlubGluZS1m +bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDdweDsgcGFkZGluZzogNnB4IDEzcHg7IGJv +cmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUt +Mik7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBmb250 +LXNpemU6IDEyLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgY3Vyc29yOiBwb2ludGVyOyB9Ci5obC1v +cHQ6OmJlZm9yZSB7IGNvbnRlbnQ6ICIiOyB3aWR0aDogMTFweDsgaGVpZ2h0OiAxMXB4OyBib3Jk +ZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWxpbmUtMik7IGZsZXg6IDAgMCBhdXRv +OyB9Ci5obC1vcHQuaGwtaW5mbzo6YmVmb3JlIHsgYmFja2dyb3VuZDogdmFyKC0taGwtaW5mbyk7 +IH0KLmhsLW9wdC5obC1hbGVydDo6YmVmb3JlIHsgYmFja2dyb3VuZDogdmFyKC0taGwtYWxlcnQp +OyB9Ci5obC1vcHQuaGwtdXJnZW50OjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1obC11cmdl +bnQpOyBib3gtc2hhZG93OiAwIDAgMCAzcHggY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1obC11 +cmdlbnQpIDMwJSwgdHJhbnNwYXJlbnQpOyB9Ci5obC1vcHQuc2VsIHsgYm9yZGVyLWNvbG9yOiB2 +YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQt +c29mdCk7IH0KCi8qIC0tLS0gSW1wcmVzc3VtLU1vZGFsIC0tLS0gKi8KLmltcHJlc3N1bS1pbmhh +bHQgaDQgeyBtYXJnaW46IDE0cHggMCA0cHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBmb250 +LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQouaW1wcmVzc3VtLWlu +aGFsdCBoNDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH0KLmltcHJlc3N1bS1pbmhhbHQg +cCwgLmltcHJlc3N1bS1pbmhhbHQgdWwgeyBtYXJnaW46IDAgMCA4cHg7IGNvbG9yOiB2YXIoLS10 +ZXh0LWRpbSk7IGZvbnQtc2l6ZTogMTMuNXB4OyBsaW5lLWhlaWdodDogMS42OyB9Ci5pbXByZXNz +dW0taW5oYWx0IHVsIHsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9Ci5pbXByZXNzdW0taW5oYWx0IGEg +eyBjb2xvcjogdmFyKC0tYnJhbmQpOyB9Ci5pbXByZXNzdW0tbm90ZmFsbCB7IG1hcmdpbi10b3A6 +IDE2cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1sZyk7IGJv +cmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0td2FybikgNDAlLCB2YXIo +LS1saW5lKSk7IGJhY2tncm91bmQ6IHZhcigtLXdhcm4tc29mdCk7IH0KLmltcHJlc3N1bS1ub3Rm +YWxsLXRpdGVsIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7 +IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS13YXJuKTsgbWFyZ2luLWJvdHRvbTogNnB4 +OyB9Ci5pbXByZXNzdW0tbm90ZmFsbC10aXRlbCBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAx +NnB4OyB9Ci5pbXByZXNzdW0tbm90ZmFsbC10ZXh0IHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjog +dmFyKC0tdGV4dC1kaW0pOyBsaW5lLWhlaWdodDogMS41NTsgbWFyZ2luOiAwIDAgMTJweDsgfQou +aW1wcmVzc3VtLW5vdGZhbGwtdGV4dCBjb2RlLCAuaW1wcmVzc3VtLWluaGFsdCBjb2RlIHsgZm9u +dC1mYW1pbHk6IHZhcigtLW1vbm8pOyBmb250LXNpemU6IDEycHg7IGJhY2tncm91bmQ6IHZhcigt +LWJnLTMpOyBwYWRkaW5nOiAxcHggNXB4OyBib3JkZXItcmFkaXVzOiA0cHg7IH0KLmltcHJlc3N1 +bS1tYWlsLWJ0biB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBn +YXA6IDhweDsgfQouaW1wcmVzc3VtLW1haWwtYnRuIHN2ZyB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6 +IDE2cHg7IH0KLyogQWxsZ2VtZWluZXIgU3VwcG9ydC1CbG9jayAoVGVhbSA1LCBhbGxlIFJvbGxl +bikgKi8KLmltcHJlc3N1bS1zdXBwb3J0IHsgbWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTRw +eCAxNnB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgYm9yZGVyOiAxcHggc29saWQgY29s +b3ItbWl4KGluIG9rbGFiLCB2YXIoLS1icmFuZCkgMzUlLCB2YXIoLS1saW5lKSk7IGJhY2tncm91 +bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci5pbXByZXNzdW0tc3VwcG9ydC10aXRlbCB7IGRpc3Bs +YXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBmb250LXdlaWdodDogNzAw +OyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgbWFyZ2luLWJvdHRvbTogNnB4OyB9Ci5pbXBy +ZXNzdW0tc3VwcG9ydC10aXRlbCBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5p +bXByZXNzdW0tc3VwcG9ydC10ZXh0IHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tdGV4 +dC1kaW0pOyBsaW5lLWhlaWdodDogMS41NTsgbWFyZ2luOiAwIDAgMTJweDsgfQovKiBSZWRha3Rp +b24gJiBBZG1pbmlzdHJhdGlvbiAoYXV0b21hdGlzY2ggYXVzIHNldHRpbmdzLnRlYW0pICovCi5p +bXByZXNzdW0tdGVhbSBoNCB7IG1hcmdpbjogMTRweCAwIDRweDsgZm9udC1zaXplOiB2YXIoLS1m +cy1zbSk7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci5p +bXByZXNzdW0tdGVhbS1oIHsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xv +cjogdmFyKC0tdGV4dC1kaW0pOyBtYXJnaW46IDZweCAwIDJweDsgfQouaW1wcmVzc3VtLXRlYW0g +dWwgeyBtYXJnaW46IDAgMCA2cHg7IHBhZGRpbmctbGVmdDogMjBweDsgfQouaW1wcmVzc3VtLXRl +YW0gbGkgeyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGxpbmUtaGVp +Z2h0OiAxLjU7IH0KCi8qIFNldHRpbmdzOiBncm9zc2UgVGV4dGFyZWFzIChJbXByZXNzdW0gLyBT +dXBwb3J0LVZvcmxhZ2UpICovCi5zZXQtYmlndGEgeyB3aWR0aDogMTAwJTsgYm94LXNpemluZzog +Ym9yZGVyLWJveDsgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDog +MS41OyBwYWRkaW5nOiAxMHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBib3Jk +ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgY29s +b3I6IHZhcigtLXRleHQpOyByZXNpemU6IHZlcnRpY2FsOyB9Ci5zZXQtYmlndGE6Zm9jdXMgeyBv +dXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAw +IDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9CgovKiBGdcOfemVpbGUgbGlua2UgU3BhbHRlIChJ +bXByZXNzdW0tTGluaywgYWxsZSBSb2xsZW4pICovCi5yYWlsLWZvb3QgeyBmbGV4OiAwIDAgYXV0 +bzsgcGFkZGluZzogOHB4IDE0cHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg +fQoucmFpbC1mb290LWxpbmsgeyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IDA7IHBhZGRpbmc6 +IDRweCAycHg7IGZvbnQ6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRl +eHQtZm50KTsgY3Vyc29yOiBwb2ludGVyOyB9Ci5yYWlsLWZvb3QtbGluazpob3ZlciB7IGNvbG9y +OiB2YXIoLS1icmFuZCk7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9Ci5idWxsIC5hY2Nl +bnQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMTRweDsgYm90dG9tOiAxNHB4 +OyB3aWR0aDogM3B4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJhY2tncm91bmQ6IHZhcigtLWNhdCwg +dmFyKC0tYnJhbmQpKTsgfQouYnVsbC10b3AgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczog +Y2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi1ib3R0b206IDdweDsgZmxleC13cmFwOiB3cmFwOyB9 +Ci5idWxsLWRhdGUgeyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgZm9udC13ZWlnaHQ6IDUwMDsg +Y29sb3I6IHZhcigtLXRleHQtZm50KTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVt +czsgfQouYnVsbC1zcGFjZXIgeyBmbGV4OiAxOyB9Ci5idWxsIGgzIHsgbWFyZ2luOiAwIDAgN3B4 +OyBmb250LXNpemU6IDE3cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGxpbmUtaGVpZ2h0OiAxLjM1OyBs +ZXR0ZXItc3BhY2luZzogLS4wMDVlbTsgfQouYnVsbCAuYm9keSB7IGNvbG9yOiB2YXIoLS10ZXh0 +LWRpbSk7IGZvbnQtc2l6ZTogMTMuNzVweDsgbGluZS1oZWlnaHQ6IDEuNjg7IHdoaXRlLXNwYWNl +OiBwcmUtd3JhcDsgfQouYnVsbCAuYm9keSBzdHJvbmcgeyBjb2xvcjogdmFyKC0tdGV4dCk7IGZv +bnQtd2VpZ2h0OiA3MDA7IH0KLmJ1bGwgLmJvZHkgYSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IHRl +eHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDsgfQou +YnVsbC1tZXRhIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxM3B4 +OyBtYXJnaW4tdG9wOiAxM3B4OyBwYWRkaW5nLXRvcDogMTFweDsgYm9yZGVyLXRvcDogMXB4IHNv +bGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7 +IH0KLmJ1bGwtbWV0YSAud2hvIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBj +ZW50ZXI7IGdhcDogNnB4OyBmb250LXdlaWdodDogNjAwOyB9Ci5idWxsLW1ldGEgLndobyBzdmcg +eyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyB9Ci5idWxsLWFjdGlvbnMgeyBtYXJnaW4tbGVm +dDogYXV0bzsgZGlzcGxheTogZmxleDsgZ2FwOiAzcHg7IH0KLm1pbmktYnRuIHsgd2lkdGg6IDMw +cHg7IGhlaWdodDogMzBweDsgYm9yZGVyLXJhZGl1czogNnB4OyBkaXNwbGF5OiBncmlkOyBwbGFj +ZS1pdGVtczogY2VudGVyOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB0cmFuc2l0aW9uOiAuMTJz +OyB9Ci5taW5pLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGNvbG9yOiB2 +YXIoLS10ZXh0KTsgfQoubWluaS1idG4gc3ZnIHsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsg +fQoubWluaS1idG4ub24geyBjb2xvcjogdmFyKC0td2Fybik7IH0KLm1pbmktYnRuLmRhbmdlcjpo +b3ZlciB7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1kYW5nZXItc29m +dCk7IH0KLmJ1bGwtbmV3IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC03cHg7IHJpZ2h0OiAx +NHB4OyB9CgouZmVlZC1lbXB0eSB7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogNzBweCAy +MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyB9Ci5mZWVkLWVtcHR5IHN2ZyB7IHdpZHRoOiA0 +NnB4OyBoZWlnaHQ6IDQ2cHg7IG9wYWNpdHk6IC40OyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9Cgov +KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLSBDb250ZW50LVZpZXcgKERva3VtZW50KSAqLwouY29udGVudC12aWV3IHsgZGlzcGxheTog +bm9uZTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZmxleDogMTsgbWluLWhlaWdodDogMDsgfQou +Y2VudGVyLmRvYyAuZmVlZC1oZWFkLCAuY2VudGVyLmRvYyAuZmVlZC1zY3JvbGwgeyBkaXNwbGF5 +OiBub25lOyB9Ci5jZW50ZXIuZG9jIC5jb250ZW50LXZpZXcgeyBkaXNwbGF5OiBmbGV4OyB9Ci5j +di1iYXIgeyBmbGV4OiAwIDAgYXV0bzsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRl +cjsgZ2FwOiAxMnB4OyBwYWRkaW5nOiAxMnB4IDIycHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xp +ZCB2YXIoLS1saW5lKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IH0KLmN2LWJhciAucGF0aCB7 +IGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0t +dGV4dC1kaW0pOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hp +dGUtc3BhY2U6IG5vd3JhcDsgfQouY3YtZnJhbWUgeyBmbGV4OiAxOyBib3JkZXI6IDA7IHdpZHRo +OiAxMDAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFJJR0hU +IFJBSUwgwrcgU29mb3J0bWHDn25haG1lbiAmIFF1aWNrbGlua3MKICAgPT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8K +LnBhbmVsIHsgbWFyZ2luOiAwIDEwcHggMTZweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJv +cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsg +Ym94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoucGFuZWwt +aGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOXB4OyBwYWRk +aW5nOiAxMnB4IDE0cHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgfQou +cGFuZWwtaGVhZCAuaWNvIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgYm9yZGVyLXJhZGl1 +czogNnB4OyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBmbGV4OiAwIDAgYXV0 +bzsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0K +LnBhbmVsLWhlYWQgLmljbyBzdmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyB9Ci5wYW5l +bC1oZWFkIGgzIHsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiA3MDA7 +IGxldHRlci1zcGFjaW5nOiAuMDVlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6 +IHZhcigtLXRleHQtZGltKTsgfQoucGFuZWwtaGVhZCAuYWRkIHsgbWFyZ2luLWxlZnQ6IGF1dG87 +IH0KLnBhbmVsID4gLnFsLWdyaWQgeyBwYWRkaW5nOiAxMnB4OyB9Ci8qIExpbmtzYW1tbHVuZ3Mt +TW9kdWwgKHJlY2h0cywgZXJzZXR6dCB0ZW1wb3JhZXIgZGllIERpZW5zdGdydXBwZSkgKi8KLnBh +bmVsLmxpbmtjb2wgeyBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJh +bmQpIDM1JSwgdmFyKC0tbGluZSkpOyB9Ci5saW5rY29sLWhlYWQgaDMgeyBtYXJnaW4tcmlnaHQ6 +IDRweDsgfQoubGlua2NvbC1oZWFkIC5pY28geyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1zb2Z0 +KTsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQoubGlua2NvbC1hY3RzIHsgbWFyZ2luLWxlZnQ6IGF1 +dG87IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDJweDsgfQoubGlua2NvbCA+IC5saW5rY29s +LWJvZHkgeyBwYWRkaW5nOiAxMnB4OyB9Ci8qIEVkaXRvcjogTGlua3NhbW1sdW5ncy1aZWlsZSAq +LwoubGMtcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjFmciAx +LjVmciAxMTZweCBhdXRvOyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQoubGMtbW9k +ZSB7IHBhZGRpbmc6IDZweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJvcmRlcjogMXB4 +IHNvbGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFy +KC0tdGV4dCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyB9Ci5sYy1zZWMgLnJlLXNlYy1oZWFk +IC5tb25vIHsgZmxleDogMCAwIGF1dG87IGZvbnQtc2l6ZTogMTFweDsgfQoKLnFsLWdyaWQgeyBk +aXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogN3B4OyB9 +Ci5xbC0zIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfQoucWwtMyAu +cWwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNp +emU6IDExLjVweDsgcGFkZGluZzogOHB4OyBtaW4taGVpZ2h0OiAzOHB4OyBnYXA6IDVweDsgfQou +cWwtMyAucWwgLmxibCB7IGZsZXg6IDAgMSBhdXRvOyB9Ci5xbCB7CiAgcG9zaXRpb246IHJlbGF0 +aXZlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsKICBwYWRk +aW5nOiA5cHggMTFweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7CiAgYmFja2dyb3VuZDog +dmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBjb2xvcjogdmFyKC0t +dGV4dC1kaW0pOwogIGZvbnQtc2l6ZTogMTIuNXB4OyBmb250LXdlaWdodDogNjAwOyB0cmFuc2l0 +aW9uOiAuMTJzOyBtaW4taGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBsZWZ0Owp9Ci5xbDpob3Zl +ciB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBib3JkZXItY29sb3I6IHZhcigtLWJy +YW5kKTsgY29sb3I6IHZhcigtLWJyYW5kLXN0cm9uZyk7IH0KLnFsIC5sYmwgeyBmbGV4OiAxOyBt +aW4td2lkdGg6IDA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9 +Ci5xbCAuZXh0IHsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgY29sb3I6IHZhcigtLXRleHQt +Zm50KTsgZmxleDogMCAwIGF1dG87IH0KLnFsOmhvdmVyIC5leHQgeyBjb2xvcjogdmFyKC0tYnJh +bmQpOyB9Ci8qIFByby1MaW5rLVZhcmlhbnRlbiAoYmVpIGRlciBFcnN0ZWxsdW5nIHdhZWhsYmFy +KSAqLwoucWwucHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsgYm9yZGVyLWNvbG9y +OiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgfQoucWwucHJpbWFyeTpo +b3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXN0cm9uZyk7IGJvcmRlci1jb2xvcjogdmFy +KC0tYnJhbmQtc3Ryb25nKTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyB9Ci5xbC5wcmltYXJ5 +IC5leHQsIC5xbC5wcmltYXJ5OmhvdmVyIC5leHQgeyBjb2xvcjogdmFyKC0tYWNjZW50LWluayk7 +IH0KLnFsLmRhbmdlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1zb2Z0KTsgYm9yZGVyLWNv +bG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWRhbmdlcikgMzQlLCB2YXIoLS1saW5lKSk7 +IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5xbC5kYW5nZXI6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2 +YXIoLS1kYW5nZXIpOyBib3JkZXItY29sb3I6IHZhcigtLWRhbmdlcik7IGNvbG9yOiAjZmZmOyB9 +Ci5xbC5kYW5nZXI6aG92ZXIgLmV4dCB7IGNvbG9yOiAjZmZmOyB9Ci8qIExvZXNjaGVuIGltIFBm +bGVnZS1Nb2R1czogVmllcmVjayBiw7xuZGlnIGluIGRlciBvYmVyZW4gcmVjaHRlbiBFY2tlIOKA +lCB3aXJrdCB3aWUgZWluCiAgIGlubmVubGllZ2VuZGVyIFRlaWwgZGVzIEJ1dHRvbnMgKGF1c3Nl +biA9IEJ1dHRvbi1SYWRpdXMsIGlubmVuIGxlaWNodCBnZXJ1bmRldCwga2VpbiBLcmVpcykuICov +Ci5xbCAucWRlbCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgd2lkdGg6 +IDE5cHg7IGhlaWdodDogMTlweDsKICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXItc20pIDAgdmFy +KC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlcik7IGNvbG9yOiAjZmZmOwogIGRpc3Bs +YXk6IG5vbmU7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IH0KLmVkaXRpbmcgLnFsIC5xZGVsIHsgZGlz +cGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlm +eS1jb250ZW50OiBjZW50ZXI7IH0KLmVkaXRpbmcgLnFsIHsgcGFkZGluZy1yaWdodDogMjZweDsg +fSAgIC8qIFBsYXR6IGZ1ZXIgZGFzIExvZXNjaC1WaWVyZWNrICovCi5xbCAucWRlbDpob3ZlciB7 +IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1kKTsgfQoucWwgLnFkZWwgc3ZnIHsgd2lkdGg6IDEw +cHg7IGhlaWdodDogMTBweDsgZGlzcGxheTogYmxvY2s7IH0KCi8qIFNvZm9ydC1CbG9jayAoTm90 +ZmFsbCkg4oCUIEthcnRlIG1pdCByYW5kdm9sbGVtIEtvcGYgKyAxMnB4LUJvZHkgKi8KLnBhbmVs +LnNvcyB7IGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1kYW5nZXIpIDM0 +JSwgdmFyKC0tbGluZSkpOyB9Ci5wYW5lbC5zb3MgLnBhbmVsLWhlYWQgeyBiYWNrZ3JvdW5kOiB2 +YXIoLS1kYW5nZXItc29mdCk7IGJvcmRlci1ib3R0b20tY29sb3I6IGNvbG9yLW1peChpbiBva2xh +YiwgdmFyKC0tZGFuZ2VyKSAyNCUsIHZhcigtLWxpbmUpKTsgfQoucGFuZWwuc29zIC5wYW5lbC1o +ZWFkIGgzIHsgY29sb3I6IHZhcigtLWRhbmdlcik7IH0KLnBhbmVsLnNvcyAucGFuZWwtaGVhZCAu +aWNvIHsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsgY29sb3I6ICNmZmY7IH0KLnBhbmVsLnNv +cyA+IC5zb3MtcHJpbWFyeSB7IG1hcmdpbjogMTJweCAxMnB4IDA7IH0KLnBhbmVsLnNvcyA+IC5x +bC1ncmlkIHsgcGFkZGluZzogMTJweDsgfQouc29zLXByaW1hcnkgewogIGRpc3BsYXk6IGZsZXg7 +IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgd2lkdGg6IGNhbGMoMTAwJSAtIDI0cHgp +OwogIHBhZGRpbmc6IDEycHggMTVweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7CiAgYmFj +a2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiA3MDA7IGZv +bnQtc2l6ZTogMTRweDsgdHJhbnNpdGlvbjogLjE0czsKfQouc29zLXByaW1hcnk6aG92ZXIgeyBi +YWNrZ3JvdW5kOiB2YXIoLS1kYW5nZXItZCk7IH0KLnNvcy1wcmltYXJ5IHN2ZyB7IHdpZHRoOiAx +OHB4OyBoZWlnaHQ6IDE4cHg7IH0KLnNvcyAucWwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsg +fQouc29zIC5xbDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1zb2Z0KTsgYm9yZGVy +LWNvbG9yOiB2YXIoLS1kYW5nZXIpOyBjb2xvcjogdmFyKC0tZGFuZ2VyKTsgfQoKLmFkZC1idG4g +eyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA1cHg7IGhl +aWdodDogMjhweDsgcGFkZGluZzogMCAxMHB4OyBib3JkZXItcmFkaXVzOiA2cHg7IGJhY2tncm91 +bmQ6IHZhcigtLWJnLTMpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBjb2xvcjog +dmFyKC0tdGV4dC1kaW0pOyBmb250LXNpemU6IDExLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQou +YWRkLWJ0bjpob3ZlciB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGJvcmRlci1jb2xvcjogdmFyKC0t +YnJhbmQpOyB9Ci5hZGQtYnRuIHN2ZyB7IHdpZHRoOiAxM3B4OyBoZWlnaHQ6IDEzcHg7IH0KCi8q +IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tIERpZW5zdGdydXBwZSAvIFZvcnN0cnVrdHVyaWVydW5nICovCi5yb3N0ZXIgeyBtYXJnaW46 +IDAgMTBweCAyMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgYm9yZGVyOiAxcHggc29saWQg +dmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbGcpOyBib3gtc2hhZG93OiB2YXIo +LS1zaGFkb3ctc20pOyBvdmVyZmxvdzogaGlkZGVuOyB9Ci5yb3N0ZXItaGVhZCB7IGRpc3BsYXk6 +IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vl +bjsgZ2FwOiAxMHB4OyBwYWRkaW5nOiAxM3B4IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsgYmFja2dy +b3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1s +aW5lKTsgfQoucm9zdGVyLXRpdGxlIHsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogODAw +OyBsZXR0ZXItc3BhY2luZzogLS4wMWVtOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogYmFz +ZWxpbmU7IGdhcDogM3B4OyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQouci1ncm91cCB7 +IHdpZHRoOiA0OHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtd2VpZ2h0OiA4MDA7IGZvbnQt +c2l6ZTogMTZweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlcjogMXB4IHNvbGlkIHZh +cigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IDZweDsgcGFkZGluZzogMXB4IDA7IGNvbG9yOiB2 +YXIoLS1icmFuZC1zdHJvbmcpOyB9Ci5yLWdyb3VwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIo +LS1icmFuZCk7IH0KLnItZ3JvdXA6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6 +IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9 +Ci5yb3N0ZXItYWN0aW9ucyB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2Vu +dGVyOyBnYXA6IDRweDsgfQouaWNvbi1taW5pIHsgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsg +Ym9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBj +ZW50ZXI7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFy +ZW50OyB0cmFuc2l0aW9uOiAuMTJzOyB9Ci5pY29uLW1pbmk6aG92ZXIgeyBjb2xvcjogdmFyKC0t +dGV4dCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGJvcmRlci1jb2xvcjogdmFyKC0tbGlu +ZSk7IH0KLmljb24tbWluaSBzdmcgeyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyB9Ci5yb3N0 +ZXItY2xvY2sgeyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgY29sb3I6IHZhcigtLXRleHQtZGlt +KTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgd2hpdGUtc3BhY2U6IG5vd3Jh +cDsgfQouci1ncm91cC1oIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBn +YXA6IDZweDsgbWFyZ2luOiAxMnB4IDRweCA2cHg7IGZvbnQtd2VpZ2h0OiA4MDA7IH0KLnItZ3Jv +dXAtaDpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXRvcDogMnB4OyB9Ci5yLWdyb3VwLWxibCB7IGZv +bnQtc2l6ZTogdmFyKC0tZnMtc20pOyBsZXR0ZXItc3BhY2luZzogLjAxZW07IH0KLnItc2VjLWgg +eyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNp +bmc6IDA7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IHBhZGRpbmc6IDJweCA0cHggNHB4OyB9Cgov +KiBSb3N0ZXItRWRpdG9yIChmZWF0dXJlcy9yb3N0ZXItZWRpdC5qcykgKi8KLnJlLWJvZHkgeyBn +YXA6IHZhcigtLXNwLTQpOyB9Ci5yZS1ncm91cCB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxp +bmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgcGFkZGluZzogdmFyKC0tc3AtMyk7IGJh +Y2tncm91bmQ6IHZhcigtLXN1cmZhY2UtMSk7IH0KLnJlLWdyb3VwLWhlYWQgeyBkaXNwbGF5OiBm +bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBtYXJnaW4tYm90dG9t +OiB2YXIoLS1zcC0yKTsgfQoucmUtZ2xhYmVsLXByZSB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQt +c2l6ZTogdmFyKC0tZnMtc20pOyB9Ci5yZS1nbGFiZWwgeyB3aWR0aDogNTZweDsgdGV4dC1hbGln +bjogY2VudGVyOyBmb250LXdlaWdodDogODAwOyBwYWRkaW5nOiA2cHggNHB4OyBib3JkZXItcmFk +aXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNv +bGlkIHZhcigtLWxpbmUpOyBjb2xvcjogdmFyKC0tYnJhbmQpOyB9CnNlbGVjdC5yZS1nbGFiZWwg +eyB3aWR0aDogNzBweDsgdGV4dC1hbGlnbjogbGVmdDsgY3Vyc29yOiBwb2ludGVyOyB9Ci5yZS1z +ZWNzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1z +cC0zKTsgfQoucmUtc2VjIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1y +YWRpdXM6IHZhcigtLXItbWQpOyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgYmFja2dyb3VuZDogdmFy +KC0tc3VyZmFjZS0yKTsgfQoucmUtc2VjLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC0yKTsg +fQoucmUtc2VjLXRpdGxlIHsgZmxleDogMTsgcGFkZGluZzogNnB4IDEwcHg7IGJvcmRlci1yYWRp +dXM6IHZhcigtLXItc20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9yZGVyOiAxcHggc29s +aWQgdmFyKC0tbGluZSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLnJlLXJvd3MgeyBkaXNwbGF5OiBm +bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsgfQoucmUtcm93IHsgZGlzcGxh +eTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxNnB4IG1pbm1heCgxMjBweCwxLjJmcikg +bWlubWF4KDgwcHgsLjhmcikgbWlubWF4KDEyMHB4LDEuMmZyKSBhdXRvOyBhbGlnbi1pdGVtczog +Y2VudGVyOyBnYXA6IDZweDsgcGFkZGluZzogM3B4IDRweDsgYm9yZGVyLXJhZGl1czogdmFyKC0t +ci1zbSk7IH0KLnJlLXJvdy5kcmFnZ2luZyB7IG9wYWNpdHk6IC41OyB9Ci5yZS1yb3cuZHJvcC1i +ZWZvcmUgeyBib3gtc2hhZG93OiBpbnNldCAwIDJweCAwIHZhcigtLWJyYW5kKTsgfQoucmUtcm93 +LmRyb3AtYWZ0ZXIgeyBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCB2YXIoLS1icmFuZCk7IH0K +LnJlLXJvdyBpbnB1dCB7IHBhZGRpbmc6IDZweCA5cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt +c20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlu +ZSk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyB9Ci5yZS1yb3cgaW5wdXQ6Zm9jdXMgeyBvdXRs +aW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAg +M3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci8qIEFQVy0vV0QtQXVzd2FobCAoRHJvcGRvd24gKyBh +dXRvbWF0aXNjaGVyLCBuaWNodCBlZGl0aWVyYmFyZXIgUnVmbmFtZSkgKi8KLnJlLXJvdyBzZWxl +Y3QucmUtYXB3IHsgcGFkZGluZzogNnB4IDlweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7 +IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg +Zm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgd2lkdGg6IDEwMCU7 +IH0KLnJlLXJvdyBzZWxlY3QucmUtYXB3OmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNv +bG9yOiB2YXIoLS1icmFuZCk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1icmFuZC1zb2Z0 +KTsgfQoucmUtYXB3LWNhbGwgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNl +bnRlcjsgcGFkZGluZzogNnB4IDlweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tn +cm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tbGluZSk7IGNvbG9y +OiB2YXIoLS10ZXh0LWRpbSk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBtaW4td2lkdGg6IDA7 +IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTog +bm93cmFwOyB9Ci5udi1taW5pLnJlLWFwdy10b2cgeyB3aWR0aDogYXV0bzsgcGFkZGluZzogMCA3 +cHg7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDgwMDsgbGV0dGVyLXNwYWNpbmc6IC4w +M2VtOyB9Ci5udi1taW5pLnJlLWFwdy10b2cub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1z +b2Z0KTsgY29sb3I6IHZhcigtLWJyYW5kLXN0cm9uZyk7IH0KLnJlLWFjdHMgeyBkaXNwbGF5OiBp +bmxpbmUtZmxleDsgZ2FwOiAycHg7IH0KLnJlLWFkZCB7IGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7 +IG1hcmdpbi10b3A6IHZhcigtLXNwLTIpOyBwYWRkaW5nOiA2cHggMTJweDsgZm9udC1zaXplOiB2 +YXIoLS1mcy1zbSk7IH0KLnJlLWdyb3VwIC5yZS1ncmlwLCAucmUtcm93IC5udi1ncmlwIHsgY29s +b3I6IHZhcigtLXRleHQtZm50KTsgY3Vyc29yOiBncmFiOyBmb250LXNpemU6IDEycHg7IH0KCi8q +IE5hdi1QaWNrZXIgKGludGVybmVyIExpbmssIGZlYXR1cmVzL25hdi5qcyBvcGVuTmF2UGlja2Vy +KSAqLwoubnAtc2VhcmNoIHsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDlweCAxMnB4OyBib3JkZXIt +cmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4 +IHNvbGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyB9Ci5ucC1zZWFy +Y2g6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94 +LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci5ucC1saXN0IHsgZGlzcGxh +eTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IG1heC1oZWlnaHQ6IDUy +dmg7IG92ZXJmbG93OiBhdXRvOyB9Ci5ucC1yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBwYWRkaW5nOiA4cHggMTBweDsgYm9yZGVyLXJh +ZGl1czogdmFyKC0tci1zbSk7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBjb2xvcjog +dmFyKC0tdGV4dC1kaW0pOyB0cmFuc2l0aW9uOiAuMTJzOyB9Ci5ucC1yb3c6aG92ZXIgeyBiYWNr +Z3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLm5wLWljIHsgZGlz +cGxheTogaW5saW5lLWZsZXg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGZsZXg6IDAgMCBhdXRv +OyB9Ci5ucC1pYyBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5ucC1sYmwgeyBm +bGV4OiAxOyBtaW4td2lkdGg6IDA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVs +bGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBmb250LXdlaWdodDogNjAwOyB9Ci5ucC1raW5k +IHsgZm9udC1zaXplOiB2YXIoLS1mcy0yeHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBsZXR0 +ZXItc3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZsZXg6IDAgMCBh +dXRvOyB9CgovKiBQYW5lbHMtVmVyd2FsdGVuLUVpbnN0aWVnIChyZWNodGUgU3BhbHRlLCBlZGl0 +LW9ubHkpICovCi5wYW5lbHMtdG9vbGJhciB7IG1hcmdpbjogNHB4IDlweCAxMHB4OyB9Ci5wYW5l +bHMtdG9vbGJhciAuYWRkLWJ0biB7IHdpZHRoOiAxMDAlOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl +cjsgfQoKLyogUGFuZWwtRWRpdG9yIChmZWF0dXJlcy9wYW5lbHMtZWRpdC5qcykgKi8KLnBlLWJv +ZHkgeyBnYXA6IHZhcigtLXNwLTQpOyB9Ci5wZS1wYW5lbCB7IGJvcmRlcjogMXB4IHNvbGlkIHZh +cigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgcGFkZGluZzogdmFyKC0tc3At +Myk7IGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UtMSk7IH0KLnBlLXBhbmVsLWhlYWQgeyBkaXNw +bGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyBtYXJnaW4t +Ym90dG9tOiB2YXIoLS1zcC0yKTsgfQoucGUtcHR5cGUgeyBmb250LWZhbWlseTogdmFyKC0tbW9u +byk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtMnhzKTsgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRyYWNr +aW5nLWNhcCk7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0LWZu +dCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1y +LXNtKTsgcGFkZGluZzogM3B4IDdweDsgZmxleDogMCAwIGF1dG87IH0KLnBlLXB0aXRsZSB7IGZs +ZXg6IDE7IHBhZGRpbmc6IDZweCAxMHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFj +a2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBmb250 +LXdlaWdodDogNjAwOyB9Ci5wZS1saW5rcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9u +OiBjb2x1bW47IGdhcDogNHB4OyB9Ci5wZS1saW5rIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1w +bGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTEwcHgsMS4xZnIpIG1pbm1heCgxMzBweCwxLjRmcikgYXV0 +byBhdXRvOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgfQoucGUtbGluayBpbnB1dCwg +LnBlLXZhcmlhbnQgeyBwYWRkaW5nOiA2cHggOXB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNt +KTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUp +OyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgfQoucGUtdmFyaWFudCB7IGNvbG9yOiB2YXIoLS10 +ZXh0LWRpbSk7IH0KLnBlLWxpbmsgaW5wdXQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXIt +Y29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNv +ZnQpOyB9Ci5wZS1sdGFyZ2V0IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IHBhZGRpbmc6IDZw +eCA5cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0 +LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQoucGUtaW50ZXJuIHsg +Y29sb3I6IHZhcigtLWJyYW5kKTsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIo +LS1icmFuZCkgMTAlLCB0cmFuc3BhcmVudCk7IH0KLnBlLWFkZCB7IGRpc3BsYXk6IGZsZXg7IGdh +cDogdmFyKC0tc3AtMik7IG1hcmdpbi10b3A6IHZhcigtLXNwLTIpOyBmbGV4LXdyYXA6IHdyYXA7 +IH0KLnBlLWFkZCAuYnRuIHsgcGFkZGluZzogNnB4IDEycHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMt +c20pOyB9CgovKiBJbnRlcm5lciBMaW5rIGltIGdlcmVuZGVydGVuIEFydGlrZWwvRmVlZCAoUGhh +c2UgOSkgKi8KLmFydC1ib2R5IGEucG9ydGFsLWxpbmssIC5idWxsLWJvZHkgYS5wb3J0YWwtbGlu +ayB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvci1t +aXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSA0MCUsIHRyYW5zcGFyZW50KTsgY3Vyc29yOiBwb2lu +dGVyOyB9Ci5hcnQtYm9keSBhLnBvcnRhbC1saW5rOmhvdmVyLCAuYnVsbC1ib2R5IGEucG9ydGFs +LWxpbms6aG92ZXIgeyBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLnItc2Vj +IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgcGFkZGluZzogOHB4OyBn +YXA6IDNweDsgfQouci1zZWMgKyAuci1zZWMgeyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0t +bGluZSk7IH0KLnItcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBt +aW5tYXgoMTMycHgsIDIwMHB4KSAxZnI7IGFsaWduLWl0ZW1zOiBzdHJldGNoOyBnYXA6IDhweDsg +fQouci1sYWJlbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4 +OyBwYWRkaW5nOiA1cHggNHB4IDVweCA4cHg7IG1pbi1oZWlnaHQ6IDMycHg7IH0KLnItbGFiZWwg +LnJvbGUgeyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6IHZhcigt +LXRleHQtZGltKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1v +dmVyZmxvdzogZWxsaXBzaXM7IH0KLnItbGFiZWwgLnN1YiB7IG1hcmdpbi1sZWZ0OiBhdXRvOyBj +b2xvcjogdmFyKC0tdGV4dC1mbnQpOyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiB2YXIo +LS1tb25vKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouci1uYW1lLWNlbGwgeyBkaXNwbGF5OiBm +bGV4OyB9Ci5yLW5hbWUgeyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJv +cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiA2cHg7IHBhZGRpbmc6 +IDVweCAxMHB4OyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDEzcHg7IHRyYW5zaXRpb246 +IC4xMnM7IH0KLnItbmFtZTo6cGxhY2Vob2xkZXIgeyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBm +b250LXdlaWdodDogNDAwOyB9Ci5yLW5hbWU6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWxp +bmUtMik7IH0KLnItbmFtZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFy +KC0tYnJhbmQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4 +IHZhcigtLWJyYW5kLXNvZnQpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBDT01NQU5ELVBBTEVUVEUg +KGdsb2JhbGUgU3VjaGUpCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5jbWQtcmVzdWx0cyB7CiAgcG9zaXRp +b246IGFic29sdXRlOyB0b3A6IGNhbGMoMTAwJSArIDhweCk7IGxlZnQ6IDA7IHJpZ2h0OiAwOwog +IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIp +OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cp +OyBtYXgtaGVpZ2h0OiBtaW4oNjR2aCwgNTIwcHgpOyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5n +OiA3cHg7IHotaW5kZXg6IHZhcigtLXotZHJvcGRvd24pOwp9Ci5jbWQtc2NvcGVzIHsgZGlzcGxh +eTogZmxleDsgZ2FwOiA2cHg7IHBhZGRpbmc6IDhweCAxMHB4OyBib3JkZXItYm90dG9tOiAxcHgg +c29saWQgdmFyKC0tbGluZSk7IGZsZXgtd3JhcDogd3JhcDsgfQouY21kLXNjb3BlIHsgZm9udC1z +aXplOiAxMnB4OyBwYWRkaW5nOiA0cHggMTFweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxs +KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dyb3VuZDogdmFyKC0tYmct +Myk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgfQouY21kLXNjb3Bl +OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92KTsgY29sb3I6IHZhcigtLXRleHQpOyB9 +Ci5jbWQtc2NvcGUuc2VsIHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQpOyBib3JkZXItY29sb3I6 +IHZhcigtLWJyYW5kKTsgY29sb3I6IHZhcigtLWFjY2VudC1pbmspOyB9Ci5jbWQtY2F0IHsgcGFk +ZGluZzogMTBweCAxMXB4IDVweDsgZm9udC1zaXplOiAxMC41cHg7IGZvbnQtd2VpZ2h0OiA3MDA7 +IGxldHRlci1zcGFjaW5nOiAuMDdlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6 +IHZhcigtLXRleHQtZm50KTsgfQouY21kLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyBnYXA6IDEycHg7IHBhZGRpbmc6IDlweCAxMXB4OyBib3JkZXItcmFkaXVzOiB2 +YXIoLS1yLXNtKTsgY3Vyc29yOiBwb2ludGVyOyB9Ci5jbWQtaXRlbTpob3ZlciwgLmNtZC1pdGVt +LnNlbCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IH0KLmNtZC1pdGVtLnNlbCB7IGJveC1z +aGFkb3c6IGluc2V0IDNweCAwIDAgdmFyKC0tYnJhbmQpOyB9Ci5jbWQtaXRlbSAuY2ktaWNvIHsg +d2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsgYm9yZGVyLXJhZGl1czogN3B4OyBiYWNrZ3JvdW5k +OiB2YXIoLS1iZy0zKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgZmxleDog +MCAwIGF1dG87IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmNtZC1pdGVtIC5jaS1pY28gc3ZnIHsg +d2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsgfQouY21kLWl0ZW0gLmNpLW1haW4geyBmbGV4OiAx +OyBtaW4td2lkdGg6IDA7IH0KLmNtZC1pdGVtIC5jaS1sYWJlbCB7IGZvbnQtc2l6ZTogMTMuNXB4 +OyBmb250LXdlaWdodDogNjAwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxp +cHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouY21kLWl0ZW0gLmNpLXBhdGggeyBmb250LXNp +emU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1tb25v +KTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNl +OiBub3dyYXA7IH0KLmNtZC1pdGVtIC5jaS1raW5kIHsgZm9udC1zaXplOiAxMHB4OyBmb250LWZh +bWlseTogdmFyKC0tbW9ubyk7IGxldHRlci1zcGFjaW5nOiAuMWVtOyB0ZXh0LXRyYW5zZm9ybTog +dXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBwYWRkaW5nOiAycHggN3B4OyBib3Jk +ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTsg +ZmxleDogMCAwIGF1dG87IH0KLmNtZC1lbXB0eSB7IHBhZGRpbmc6IDI2cHg7IHRleHQtYWxpZ246 +IGNlbnRlcjsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQoKLyogPT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQeKA +k1ogUkVHSVNURVIgKE92ZXJsYXkpCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5vdmVybGF5IHsgcG9zaXRp +b246IGZpeGVkOyBpbnNldDogMDsgei1pbmRleDogdmFyKC0tei1vdmVybGF5KTsgZGlzcGxheTog +bm9uZTsgfQoub3ZlcmxheS5vcGVuIHsgZGlzcGxheTogYmxvY2s7IH0KLm92ZXJsYXktYmcgeyBw +b3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDE1LDI1LDQwLC40 +Nik7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpOyB9Ci5hei1wYW5lbCB7CiAgcG9zaXRpb246 +IGFic29sdXRlOyBsZWZ0OiA1MCU7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAl +LC01MCUpOwogIHdpZHRoOiBtaW4oOTAwcHgsIDkydncpOyBtYXgtaGVpZ2h0OiA4NnZoOyBvdmVy +ZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGJh +Y2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBi +b3JkZXItcmFkaXVzOiB2YXIoLS1yLXhsKTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsKfQou +YXotaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsg +cGFkZGluZzogMTZweCAyMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7 +IH0KLmF6LWhlYWQgaDIgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgbGV0dGVyLXNwYWNp +bmc6IC4wNGVtOyB9Ci5hei1oZWFkIC5tb25vIHsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgZm9u +dC1zaXplOiAxMnB4OyB9Ci5hei1zdHJpcCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3Jh +cDsgZ2FwOiA2cHg7IHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk +IHZhcigtLWxpbmUpOyB9Ci5hei1rZXkgewogIHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IGJv +cmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2Vu +dGVyOwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1s +aW5lKTsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogdmFyKC0tdGV4 +dC1kaW0pOyB0cmFuc2l0aW9uOiAuMTJzOwp9Ci5hei1rZXk6aG92ZXI6bm90KDpkaXNhYmxlZCkg +eyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm9y +ZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmF6LWtleS5hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2 +YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm9yZGVyLWNvbG9yOiB2YXIo +LS1icmFuZCk7IH0KLmF6LWtleTpkaXNhYmxlZCB7IG9wYWNpdHk6IC4zMjsgY3Vyc29yOiBkZWZh +dWx0OyB9Ci5hei1ib2R5IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTZw +eCAyMnB4IDI2cHg7IGNvbHVtbi13aWR0aDogMjQ4cHg7IGNvbHVtbi1nYXA6IDI4cHg7IH0KLmF6 +LWxldHRlci1oIHsgZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogODAwOyBjb2xvcjogdmFy +KC0tYnJhbmQpOyBtYXJnaW46IDhweCAwIDZweDsgYnJlYWstYWZ0ZXI6IGF2b2lkOyB9Ci5hei1s +aW5rIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDZweCA5cHg7IGJvcmRlci1yYWRpdXM6IDZw +eDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOiAxMy41cHg7IGJyZWFrLWluc2lk +ZTogYXZvaWQ7IH0KLmF6LWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBj +b2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQovKiBQZmxlZ2UtTW9kdXM6IEHigJNaLVplaWxl +IG1pdCBFZGl0aWVyLVN0aWZ0IHJlY2h0cyAoZ2xlaWNoZXIgS25vdGVuLUVkaXRvciB3aWUgaW4g +ZGVyIFNlaXRlbmxlaXN0ZSkuICovCi5hei1yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyBnYXA6IDRweDsgYnJlYWstaW5zaWRlOiBhdm9pZDsgfQouYXotcm93IC5hei1s +aW5rIHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfQouYXotZWRpdCB7IGZsZXg6IDAg +MCBhdXRvOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlm +eS1jb250ZW50OiBjZW50ZXI7IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IHBhZGRpbmc6IDA7 +IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsg +Y29sb3I6IHZhcigtLXRleHQtZGltKTsgY3Vyc29yOiBwb2ludGVyOyBvcGFjaXR5OiAwOyB0cmFu +c2l0aW9uOiBvcGFjaXR5IHZhcigtLWR1ci0xKSB2YXIoLS1lYXNlLW91dCksIGJhY2tncm91bmQg +dmFyKC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0KTsgfQouYXotZWRpdCBzdmcgeyB3aWR0aDogMTVw +eDsgaGVpZ2h0OiAxNXB4OyB9Ci5hei1yb3c6aG92ZXIgLmF6LWVkaXQsIC5hei1lZGl0OmZvY3Vz +LXZpc2libGUgeyBvcGFjaXR5OiAuNzU7IH0KLmF6LWVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2 +YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgb3BhY2l0eTogMTsgfQpA +bWVkaWEgKGhvdmVyOiBub25lKSB7IC5hei1lZGl0IHsgb3BhY2l0eTogLjY7IH0gfSAgIC8qIFRv +dWNoOiBrZWluIEhvdmVyIC0+IFN0aWZ0IGRhdWVyaGFmdCBzaWNodGJhciAqLwoKLyogPT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT0KICAgRElBTE9HIChCdWxsZXRpbiAvIExpbmsgYmVhcmJlaXRlbikKICAgPT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT0gKi8KLyogVmlzdWVsbCBhbiAubW9kYWwgYW5nZWdsaWNoZW4gKFBoYXNlIDUpOiBnbGVpY2hl +IEZsYWVjaGUvU2NoYXR0ZW4vQmFja2Ryb3AvQWJzdGFlbmRlLiAqLwpkaWFsb2cuZGxnIHsKICB3 +aWR0aDogbWluKHZhcigtLW1vZGFsLW1kKSwgOTR2dyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigt +LWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIteGwpOwogIGJhY2tncm91bmQ6IHZhcigt +LWJnLTIpOyBjb2xvcjogdmFyKC0tdGV4dCk7IHBhZGRpbmc6IDA7IGJveC1zaGFkb3c6IHZhcigt +LXNoYWRvdyk7Cn0KZGlhbG9nLmRsZzo6YmFja2Ryb3AgeyBiYWNrZ3JvdW5kOiByZ2JhKDE1LDI1 +LDQwLC40Nik7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpOyB9Ci5kbGctaGVhZCB7IGRpc3Bs +YXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tc3AtMyk7IHBhZGRpbmc6 +IHZhcigtLXNwLTQpIHZhcigtLXNwLTUpOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0t +bGluZSk7IH0KLmRsZy1oZWFkIGgyIHsgbWFyZ2luOiAwOyBmb250LXNpemU6IHZhcigtLWZzLW1k +KTsgZm9udC13ZWlnaHQ6IDYwMDsgfQouZGxnLWhlYWQgLnggeyBtYXJnaW4tbGVmdDogYXV0bzsg +fQouZGxnLWJvZHkgeyBwYWRkaW5nOiB2YXIoLS1zcC00KSB2YXIoLS1zcC01KTsgbWF4LWhlaWdo +dDogNzB2aDsgb3ZlcmZsb3cteTogYXV0bzsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246 +IGNvbHVtbjsgZ2FwOiB2YXIoLS1zcC0zKTsgfQouZmllbGQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4 +LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgfQouZmllbGQgPiBsYWJlbCB7IGZvbnQtc2l6 +ZTogdmFyKC0tZnMtc20pOyBsZXR0ZXItc3BhY2luZzogMDsgY29sb3I6IHZhcigtLXRleHQtZGlt +KTsgZm9udC13ZWlnaHQ6IDYwMDsgfQouZmllbGQgaW5wdXQsIC5maWVsZCB0ZXh0YXJlYSwgLmZp +ZWxkIHNlbGVjdCB7CiAgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDExcHggMTNweDsgYm9yZGVyLXJh +ZGl1czogdmFyKC0tci1zbSk7CiAgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4 +IHNvbGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyB0cmFuc2l0aW9u +OiBib3JkZXItY29sb3IgdmFyKC0tZHVyLTEpLCBib3gtc2hhZG93IHZhcigtLWR1ci0xKTsKfQov +KiBXZWljaGVyIEhJRy1Gb2t1c3JpbmcgKFBoYXNlIDEyKTogQnJhbmQtQm9yZGVyICsgZGV6ZW50 +ZXIgZ2V0b2VudGVyIEhhbG8gc3RhdHQgaGFydGVyIEdsb3cuICovCi5maWVsZCBpbnB1dDpmb2N1 +cywgLmZpZWxkIHRleHRhcmVhOmZvY3VzLCAuZmllbGQgc2VsZWN0OmZvY3VzIHsgb3V0bGluZTog +bm9uZTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIp +OyBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tYnJhbmQtc29mdCk7IH0KLmZpZWxkIHRleHRh +cmVhIHsgcmVzaXplOiB2ZXJ0aWNhbDsgbWluLWhlaWdodDogMTMwcHg7IGxpbmUtaGVpZ2h0OiAx +LjY7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsgfQouZmllbGQgLmhpbnQgeyBmb250LXNpemU6 +IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLnJvdzIgeyBkaXNwbGF5OiBncmlkOyBn +cmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTRweDsgfQoudG9nZ2xlLXJvdyB7 +IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgfQouc3dpdGNo +IHsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogNDJweDsgaGVpZ2h0OiAyNHB4OyBib3JkZXIt +cmFkaXVzOiB2YXIoLS1yLXBpbGwpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IGJvcmRlcjogMXB4 +IHNvbGlkIHZhcigtLWxpbmUtMik7IHRyYW5zaXRpb246IC4xNXM7IGZsZXg6IDAgMCBhdXRvOyB9 +Ci5zd2l0Y2g6OmFmdGVyIHsgY29udGVudDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAy +cHg7IGxlZnQ6IDJweDsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgYm9yZGVyLXJhZGl1czog +NTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWRpbSk7IHRyYW5zaXRpb246IGxlZnQgdmFyKC0t +ZHVyLTIpIHZhcigtLWVhc2UtZW1waCksIGJhY2tncm91bmQgdmFyKC0tZHVyLTIpOyB9Ci5zd2l0 +Y2gub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1vayk7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7 +IH0gICAvKiBISUc6IGFrdGl2ID0gR3J1ZW4gKFBoYXNlIDEyKSAqLwouc3dpdGNoLm9uOjphZnRl +ciB7IGxlZnQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmZmY7IH0KLmRsZy1mb290IHsgZGlzcGxheTog +ZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0zKTsgcGFkZGluZzogdmFy +KC0tc3AtNCkgdmFyKC0tc3AtNSk7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg +fQouZGxnLWZvb3QgLmdyb3cgeyBmbGV4OiAxOyB9Ci8qIEVpbmhlaXRsaWNoZXMgQnV0dG9uLURl +c2lnbiDigJQgb3JpZW50aWVydCBzaWNoIGFuIGRlbiBRdWlja2xpbmtzIGRlciByZWNodGVuIFNw +YWx0ZSAoLnFsKToKICAgZ2VydW5kZXRlIEJveCAoa2VpbiBQaWxsKSwgcnVoaWdlIEZsYWVjaGUs +IGJyYW5kLXNvZnQtSG92ZXIuIFZhcmlhbnRlbjogcHJpbWFyeS90aW50ZWQvZGFuZ2VyLiAqLwou +YnRuIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnkt +Y29udGVudDogY2VudGVyOyBnYXA6IDdweDsgcGFkZGluZzogMTBweCAxNnB4OyBib3JkZXItcmFk +aXVzOiB2YXIoLS1yLW1kKTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiB2YXIoLS1mcy1z +bSk7IGxpbmUtaGVpZ2h0OiAxOwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1kdXItMSkg +dmFyKC0tZWFzZS1vdXQpLCBiYWNrZ3JvdW5kIHZhcigtLWR1ci0xKSwgYm9yZGVyLWNvbG9yIHZh +cigtLWR1ci0xKSwgY29sb3IgdmFyKC0tZHVyLTEpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1s +aW5lKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0K +LmJ0biBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5idG46aG92ZXIgeyBiYWNr +Z3JvdW5kOiB2YXIoLS1icmFuZC1zb2Z0KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGNv +bG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB9ICAgLyogPSAucWwtSG92ZXIgKi8KLmJ0bjphY3Rp +dmUgeyB0cmFuc2Zvcm06IHNjYWxlKC45Nyk7IH0gICAvKiBISUctVGFwLUZlZWRiYWNrICovCi5i +dG4ucHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsgYm9yZGVyLWNvbG9yOiB2YXIo +LS1icmFuZCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgfQouYnRuLnByaW1hcnk6aG92ZXIg +eyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1zdHJvbmcpOyBib3JkZXItY29sb3I6IHZhcigtLWJy +YW5kLXN0cm9uZyk7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgfQouYnRuLnRpbnRlZCB7IGJh +Y2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyBj +b2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQouYnRuLnRpbnRlZDpob3ZlciB7IGJhY2tncm91 +bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJhbmQpIDIyJSwgdHJhbnNwYXJlbnQpOyBi +b3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9Ci5idG4uZ2hvc3QgeyBiYWNrZ3JvdW5kOiB2YXIo +LS1iZy0zKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1saW5lKTsgY29sb3I6IHZhcigtLXRleHQtZGlt +KTsgfQouYnRuLmdob3N0OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGJv +cmRlci1jb2xvcjogdmFyKC0tYnJhbmQpOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgfQou +YnRuLmRhbmdlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlci1zb2Z0KTsgY29sb3I6IHZhcigt +LWRhbmdlcik7IGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1kYW5nZXIp +IDM0JSwgdmFyKC0tbGluZSkpOyB9Ci5idG4uZGFuZ2VyOmhvdmVyIHsgYmFja2dyb3VuZDogdmFy +KC0tZGFuZ2VyKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1kYW5nZXIpOyBjb2xvcjogI2ZmZjsgfQou +ZXJyIHsgY29sb3I6IHZhcigtLWRhbmdlcik7IGZvbnQtc2l6ZTogMTIuNXB4OyB9CgovKiA9PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PQogICBNT0RBTCDigJQgZWluaGVpdGxpY2hlIEtvbXBvbmVudGUgKGNvcmUvbW9kYWwu +anMpCiAgIEhUTUw1LTxkaWFsb2c+IGFscyBCYWNrZHJvcC1TY2hpY2h0LCAubW9kYWwtY2FyZCBh +bHMgc2ljaHRiYXJlciBLYXN0ZW4uCiAgIExvZXN0IC5jb2xsYWItb3ZlcmxheS8uY29sbGFiLWRs +ZyB1bmQgcGVyc3Bla3RpdmlzY2ggLmRsZyBhYi4KICAgPT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KZGlhbG9nLm1v +ZGFsIHsKICBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAx +MDAlOyBtYXgtd2lkdGg6IG5vbmU7IG1heC1oZWlnaHQ6IG5vbmU7CiAgbWFyZ2luOiAwOyBib3Jk +ZXI6IDA7IHBhZGRpbmc6IHZhcigtLXNwLTYpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29s +b3I6IHZhcigtLXRleHQpOwogIG92ZXJmbG93OiBhdXRvOwp9CmRpYWxvZy5tb2RhbFtvcGVuXSB7 +IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2Vu +dGVyOyB9CmRpYWxvZy5tb2RhbDo6YmFja2Ryb3AgeyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4g +b2tsY2gsIHZhcigtLWJnKSAzOCUsIHJnYmEoMCwwLDAsLjYpKTsgYmFja2Ryb3AtZmlsdGVyOiBi +bHVyKHZhcigtLWJsdXItcG9wKSk7IH0KLm1vZGFsLWNhcmQgewogIGRpc3BsYXk6IGZsZXg7IGZs +ZXgtZGlyZWN0aW9uOiBjb2x1bW47IHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IHZhcigtLW1vZGFs +LW1kKTsgbWF4LWhlaWdodDogOTB2aDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgYm9yZGVy +OiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci14bCk7CiAg +Ym94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsgb3ZlcmZsb3c6IGhpZGRlbjsKfQoubW9kYWwtc20g +Lm1vZGFsLWNhcmQgeyBtYXgtd2lkdGg6IHZhcigtLW1vZGFsLXNtKTsgfQoubW9kYWwtbGcgLm1v +ZGFsLWNhcmQgeyBtYXgtd2lkdGg6IHZhcigtLW1vZGFsLWxnKTsgfQoubW9kYWwteGwgLm1vZGFs +LWNhcmQgeyBtYXgtd2lkdGg6IHZhcigtLW1vZGFsLXhsKTsgfQoKLm1vZGFsLWhlYWQgeyBkaXNw +bGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBwYWRkaW5n +OiB2YXIoLS1zcC00KSB2YXIoLS1zcC01KTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigt +LWxpbmUpOyBmbGV4OiAwIDAgYXV0bzsgfQoubW9kYWwtaWNvIHsgZGlzcGxheTogaW5saW5lLWZs +ZXg7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGZsZXg6IDAgMCBhdXRvOyB9Ci5tb2RhbC1pY28gc3Zn +IHsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgfQoubW9kYWwtdGl0bGUgeyBtYXJnaW46IDA7 +IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBmb250LXdlaWdodDogNjAwOyBmbGV4OiAxOyBtaW4t +d2lkdGg6IDA7IH0KLm1vZGFsLXggeyB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4OyBib3JkZXIt +cmFkaXVzOiB2YXIoLS1yLXNtKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsg +Y29sb3I6IHZhcigtLXRleHQtZGltKTsgZmxleDogMCAwIGF1dG87IHRyYW5zaXRpb246IC4xNHM7 +IH0KLm1vZGFsLXg6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFy +KC0tdGV4dCk7IH0KLm1vZGFsLXggc3ZnIHsgd2lkdGg6IDE3cHg7IGhlaWdodDogMTdweDsgfQou +bW9kYWwtYm9keSB7IHBhZGRpbmc6IHZhcigtLXNwLTQpIHZhcigtLXNwLTUpOyBvdmVyZmxvdzog +YXV0bzsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1z +cC0zKTsgZmxleDogMSAxIGF1dG87IH0KLm1vZGFsLWZvb3QgeyBkaXNwbGF5OiBmbGV4OyBhbGln +bi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBwYWRkaW5nOiB2YXIoLS1zcC00KSB2 +YXIoLS1zcC01KTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBmbGV4LXdyYXA6 +IHdyYXA7IGZsZXg6IDAgMCBhdXRvOyB9Ci5tb2RhbC1zcGFjZXIgeyBmbGV4OiAxIDEgYXV0bzsg +fQoKLyogQWRtaW4tSHViIOKAlCBLYWNoZWxyYXN0ZXIgaW0gTW9kYWwgKFBoYXNlIDEyKTogYsO8 +bmRlbHQgZGllIHZpZXIgQWRtaW4tV2Vya3pldWdlLiAqLwouYWRtaW4taHViIHsgZGlzcGxheTog +Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IHZhcigtLXNwLTMpOyB9 +Ci5hZG1pbi10aWxlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdh +cDogdmFyKC0tc3AtMyk7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IHZhcigtLXNwLTQpOwog +IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9y +ZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7CiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIo +LS1kdXItMSkgdmFyKC0tZWFzZS1vdXQpLCBib3JkZXItY29sb3IgdmFyKC0tZHVyLTEpLCB0cmFu +c2Zvcm0gdmFyKC0tZHVyLTEpIHZhcigtLWVhc2Utb3V0KTsgfQouYWRtaW4tdGlsZTpob3ZlciB7 +IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdik7IGJvcmRlci1jb2xvcjogdmFyKC0tbGluZS0yKTsg +dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9Ci5hZG1pbi10aWxlOmFjdGl2ZSB7IHRyYW5z +Zm9ybTogc2NhbGUoLjk5KTsgfQouYWRtaW4tdGlsZS1pYyB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0 +aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgZGlzcGxh +eTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsKICBjb2xvcjogdmFyKC0tYnJhbmQpOyBiYWNr +Z3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAxNCUsIHRyYW5zcGFyZW50 +KTsgfQouYWRtaW4tdGlsZS1pYyBzdmcgeyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyB9Ci5h +ZG1pbi10aWxlLXR4IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw +OiAzcHg7IG1pbi13aWR0aDogMDsgfQouYWRtaW4tdGlsZS10eCBiIHsgZm9udC1zaXplOiB2YXIo +LS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLmFkbWluLXRpbGUtZCB7IGZvbnQtc2l6ZTog +dmFyKC0tZnMteHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBsaW5lLWhlaWdodDogMS40OyB9 +CkBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkgeyAuYWRtaW4taHViIHsgZ3JpZC10ZW1wbGF0ZS1j +b2x1bW5zOiAxZnI7IH0gfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgREFURU5QRkxFR0UtTEVJU1RFIChF +ZGl0LU1vZHVzIGFrdGl2KQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwouZWRpdC1iYW5uZXIgewogIGRpc3Bs +YXk6IG5vbmU7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTRweDsgcGFkZGluZzogMTFweCAy +MnB4OwogIGJhY2tncm91bmQ6IHZhcigtLXdhcm4tc29mdCk7IGJvcmRlci1ib3R0b206IDFweCBz +b2xpZCBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLXdhcm4pIDM0JSwgdmFyKC0tbGluZSkpOwog +IGZvbnQtc2l6ZTogMTNweDsgZmxleDogMCAwIGF1dG87Cn0KLmVkaXRpbmcgLmVkaXQtYmFubmVy +IHsgZGlzcGxheTogZmxleDsgfQouZWRpdC1iYW5uZXIgLnRhZyB7IGZvbnQtd2VpZ2h0OiA3MDA7 +IGZvbnQtc2l6ZTogMTEuNXB4OyBsZXR0ZXItc3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3Jt +OiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS13YXJuKTsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFs +aWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5lZGl0LWJhbm5lciAudGFnIHN2ZyB7IHdp +ZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH0KLmVkaXQtYmFubmVyIC5zcGFjZXIgeyBmbGV4OiAx +OyB9Ci5lZGl0LWJhbm5lciAuZHJhZnQtaW5mbyB7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0K +LmVkaXQtYmFubmVyIC5idG4sIC5lZGl0LWJhbm5lciBidXR0b24geyBwYWRkaW5nOiA4cHggMTRw +eDsgZm9udC1zaXplOiAxMi41cHg7IH0KCi8qIEVkaXQtb25seSBTaWNodGJhcmtlaXQgKi8KLmVk +aXQtb25seSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfQouZWRpdGluZyAuZWRpdC1vbmx5 +IHsgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfQouZWRpdGluZyAuYnVsbC1hY3Rp +b25zIC5lZGl0LW9ubHkgeyBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7IH0KCi8qIEFkbWluLW9u +bHkgU2ljaHRiYXJrZWl0IChudXIgUm9sbGUgJ2FkbWluJzsgUmVkYWt0ZXVyZSBzZWhlbiBlcyBu +aWNodCkuCiAgIFNlcnZlciBlcnp3aW5ndCBkaWUgUmVjaHRlIHp1c2FldHpsaWNoIOKAlCBkYXMg +aGllciBpc3QgcmVpbmUgVUktS29zbWV0aWsuICovCi5hZG1pbi1vbmx5IHsgZGlzcGxheTogbm9u +ZSAhaW1wb3J0YW50OyB9Ci8qIC5lZGl0aW5nIGlzdCBlaW5lIEtsYXNzZSBhdWYgPGJvZHk+IHNl +bGJzdCAtPiBLRUlOIE5hY2hmYWhyZW4tU2VsZWt0b3IgKFB1bmt0LCBuaWNodCBMZWVyemVpY2hl +bikuCiAgIGRpc3BsYXk6Z3JpZCBzdGF0dCBpbmxpbmUtZmxleCwgZGFtaXQgZGllIEljb24tQnV0 +dG9ucyAoI2FkbWluLWh1Yi1idG4pIGlocmUgWmVudHJpZXJ1bmcgYmVoYWx0ZW4uICovCmJvZHku +cm9sZS1hZG1pbi5lZGl0aW5nIC5hZG1pbi1vbmx5LApib2R5LnJvbGUtYWRtaW4gLmFkbWluLW9u +bHkuYWx3YXlzIHsgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50OyB9CgovKiBOdXIgZnVlciBNaXRh +cmJlaXRlciBtaXQgU2NocmVpYnJvbGxlIChSZWRha3RldXIgT0RFUiBBZG1pbikgc2ljaHRiYXI7 +IExlc2VyIHNlaGVuIGVzIG5pZS4gKi8KLnN0YWZmLW9ubHkgeyBkaXNwbGF5OiBub25lICFpbXBv +cnRhbnQ7IH0KYm9keS5yb2xlLXJlZGFrdGV1ciAuc3RhZmYtb25seSwKYm9keS5yb2xlLWFkbWlu +IC5zdGFmZi1vbmx5IHsgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50OyB9CgovKiA9PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PQogICBUT0FTVAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoudG9hc3QgewogIHBvc2l0aW9uOiBmaXhlZDsg +bGVmdDogNTAlOyBib3R0b206IDI2cHg7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFu +c2xhdGVZKDEycHgpOwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xp +ZCB2YXIoLS1saW5lLTIpOyBjb2xvcjogdmFyKC0tdGV4dCk7CiAgcGFkZGluZzogMTJweCAxOHB4 +OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsK +ICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgei1pbmRleDogdmFyKC0tei10b2FzdCk7IG9wYWNp +dHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB0cmFuc2l0aW9uOiAuMjVzIHZhcigtLWVhc2Up +OwogIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWF4LXdp +ZHRoOiA0NjBweDsKfQoudG9hc3Quc2hvdyB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNs +YXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApOyB9Ci50b2FzdCBzdmcgeyB3aWR0aDogMTdweDsgaGVp +Z2h0OiAxN3B4OyBjb2xvcjogdmFyKC0tb2spOyBmbGV4OiAwIDAgYXV0bzsgfQoudG9hc3Qud2Fy +biBzdmcgeyBjb2xvcjogdmFyKC0td2Fybik7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFJFU1BPTlNJ +VkUKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT0gKi8KLm1lbnUtdG9nZ2xlIHsgZGlzcGxheTogbm9uZTsgfQpAbWVk +aWEgKG1heC13aWR0aDogMTYwMHB4KSB7IDpyb290IHsgLS1yYWlsLXI6IDQ2MHB4OyB9IH0KQG1l +ZGlhIChtYXgtd2lkdGg6IDEzODBweCkgeyA6cm9vdCB7IC0tcmFpbC1yOiA0MDBweDsgLS1yYWls +LWw6IDI0MHB4OyB9IH0KQG1lZGlhIChtYXgtd2lkdGg6IDExODBweCkgewogIDpyb290IHsgLS1y +YWlsLXI6IDM2MHB4OyAtLXJhaWwtbDogMjI4cHg7IH0KfQpAbWVkaWEgKG1heC13aWR0aDogOTgw +cHgpIHsKICAuc2hlbGwgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLDFmcik7IH0K +ICAucmFpbC1sLCAucmFpbC1yIHsgcG9zaXRpb246IGZpeGVkOyB0b3A6IHZhcigtLWJhci1oKTsg +Ym90dG9tOiAwOyB3aWR0aDogMzAwcHg7IHotaW5kZXg6IHZhcigtLXotcmFpbCk7IGJveC1zaGFk +b3c6IHZhcigtLXNoYWRvdyk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTEwJSk7IHRyYW5zaXRp +b246IHRyYW5zZm9ybSAuMjJzIHZhcigtLWVhc2UpOyB9CiAgLnJhaWwtciB7IHJpZ2h0OiAwOyBs +ZWZ0OiBhdXRvOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTEwJSk7IH0KICAucmFpbC1sLm9wZW4s +IC5yYWlsLXIub3BlbiB7IHRyYW5zZm9ybTogbm9uZTsgfQogIC5zZWFyY2ggeyBtYXgtd2lkdGg6 +IG5vbmU7IH0KICAubWVudS10b2dnbGUgeyBkaXNwbGF5OiBncmlkOyB9CiAgLm1vYmlsZS1iZyB7 +IHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IHZhcigtLWJhci1oKSAwIDA7IGJhY2tncm91bmQ6IHJn +YmEoMCwwLDAsLjUpOyB6LWluZGV4OiA0NTsgfQp9CkBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkg +ewogIC5icmFuZC1uYW1lIHNwYW4geyBkaXNwbGF5OiBub25lOyB9CiAgLmxhZ2UtcGlsbCwgLmhp +ZGUtc20geyBkaXNwbGF5OiBub25lOyB9CiAgLmZlZWQtc2Nyb2xsLCAuZmVlZC1oZWFkIHsgcGFk +ZGluZy1sZWZ0OiAxNnB4OyBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9Cn0KCi8qID09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PQogICBORVVBVUZCQVUg4oCUIEFydGlrZWwtQXV0aG9yaW5nLCBXWVNJV1lHLCBBcnRpa2VsLUFu +c2ljaHQsIEZlaW5zY2hsaWZmCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKLyogYnJlaXRlciBEaWFsb2cg +Ki8KLmRsZy5kbGctd2lkZSB7IHdpZHRoOiBtaW4odmFyKC0tbW9kYWwtbGcpLCA5NHZ3KTsgfQov +KiBBcnRpa2VsLUVkaXRvciBncm9zcyB6ZWlnZW4gKGtvbWZvcnRhYmxlcyBTY2hyZWliZW4vUHJ1 +ZWZlbiwgdmllbCBFZGl0b3JmbGFlY2hlKS4gKi8KZGlhbG9nI2FydC1kbGcgeyB3aWR0aDogbWlu +KHZhcigtLW1vZGFsLXhsKSwgOTZ2dyk7IH0KZGlhbG9nI2FydC1kbGcgLmRsZy1ib2R5IHsgbWF4 +LWhlaWdodDogODR2aDsgfQpkaWFsb2cjYXJ0LWRsZyAud3ktYm9keSB7IG1pbi1oZWlnaHQ6IDQ4 +dmg7IH0KZGlhbG9nI2FydC1kbGcgLnRveC10aW55bWNlIHsgbWluLWhlaWdodDogNTZ2aCAhaW1w +b3J0YW50OyB9CgovKiBTZWxlY3Qgd2llIGRpZSBJbnB1dHMgKi8KLmRsZyBzZWxlY3QgeyB3aWR0 +aDogMTAwJTsgZm9udDogaW5oZXJpdDsgcGFkZGluZzogOXB4IDExcHg7IGJvcmRlci1yYWRpdXM6 +IHZhcigtLXItc20sIDhweCk7CiAgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIo +LS10ZXh0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IH0KLmRsZyBzZWxlY3Q6Zm9j +dXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRv +dzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9CgovKiBXWVNJV1lHICovCi53eXNpd3ln +IHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt +c20sIDhweCk7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyB9Ci53 +eS10b29scyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAzcHg7IHBhZGRp +bmc6IDZweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlci1ib3R0b206IDFweCBzb2xp +ZCB2YXIoLS1saW5lKTsgfQoud3ktYnRuIHsgd2lkdGg6IDMycHg7IGhlaWdodDogMzBweDsgZGlz +cGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDog +Y2VudGVyOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB0cmFu +c3BhcmVudDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LWRp +bSk7IGN1cnNvcjogcG9pbnRlcjsgfQoud3ktYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0t +YmctaG92KTsgY29sb3I6IHZhcigtLXRleHQpOyBib3JkZXItY29sb3I6IHZhcigtLWxpbmUpOyB9 +Ci53eS1idG4gc3ZnIHsgd2lkdGg6IDE3cHg7IGhlaWdodDogMTdweDsgfQoud3ktYm9keSB7IG1p +bi1oZWlnaHQ6IDE3MHB4OyBtYXgtaGVpZ2h0OiAzMjBweDsgb3ZlcmZsb3c6IGF1dG87IHBhZGRp +bmc6IDEycHggMTRweDsgY29sb3I6IHZhcigtLXRleHQpOwogIGZvbnQtc2l6ZTogMTRweDsgbGlu +ZS1oZWlnaHQ6IDEuNjsgb3V0bGluZTogbm9uZTsgfQoud3ktYm9keTpmb2N1cyB7IGJveC1zaGFk +b3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1icmFuZCk7IH0KLnd5LWJvZHkgaDIsIC53eS1ib2R5 +IGgzIHsgbWFyZ2luOiAuN2VtIDAgLjNlbTsgfQoud3ktYm9keSB1bCwgLnd5LWJvZHkgb2wgeyBw +YWRkaW5nLWxlZnQ6IDEuNGVtOyBtYXJnaW46IC40ZW0gMDsgfQoud3ktYm9keSBhIHsgY29sb3I6 +IHZhcigtLWJyYW5kKTsgfQoud3ktYm9keSBwIHsgbWFyZ2luOiAuNDVlbSAwOyB9Ci53eS1ib2R5 +OmVtcHR5OjpiZWZvcmUgeyBjb250ZW50OiAiVGV4dCBlaW5nZWJlbuKApiI7IGNvbG9yOiB2YXIo +LS10ZXh0LWZudCwgdmFyKC0tdGV4dC1kaW0pKTsgfQoKLyogU2VnbWVudC1VbXNjaGFsdGVyIChp +T1MtU3RpbCwgUGhhc2UgMTJiKTogV2FubmUgKyBpbm5lbiBnbGVpdGVuZGUgUGlsbGUuICovCi5z +ZWcgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAycHg7IHBhZGRpbmc6IDNweDsgYmFja2dy +b3VuZDogdmFyKC0tYmctMyk7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXIt +cmFkaXVzOiB2YXIoLS1yLXBpbGwpOyB9Ci5zZWctb3B0IHsgcGFkZGluZzogOHB4IDE2cHg7IGJh +Y2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBib3JkZXI6IDA7 +IGN1cnNvcjogcG9pbnRlcjsKICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWlnaHQ6 +IDYwMDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTsgdHJhbnNpdGlvbjogYmFja2dyb3Vu +ZCB2YXIoLS1kdXItMSkgdmFyKC0tZWFzZS1vdXQpLCBjb2xvciB2YXIoLS1kdXItMSk7IH0KLnNl +Zy1vcHQ6aG92ZXIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLnNlZy1vcHQuc2VsIHsgYmFja2dy +b3VuZDogdmFyKC0tYnJhbmQtMik7IGNvbG9yOiB2YXIoLS1hY2NlbnQtaW5rKTsgYm94LXNoYWRv +dzogdmFyKC0tZWxldi0xKTsgfQoKLyogQXJ0aWtlbC1BbnNpY2h0IGluIGRlciBNaXR0ZSAqLwou +Y3YtYXJ0aWNsZSB7IGRpc3BsYXk6IG5vbmU7IH0KLmNlbnRlci5hcnRpY2xlIC5jdi1mcmFtZSB7 +IGRpc3BsYXk6IG5vbmU7IH0KLmNlbnRlci5hcnRpY2xlIC5jdi1hcnRpY2xlIHsgZGlzcGxheTog +YmxvY2s7IGZsZXg6IDE7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiAyNnB4IGNsYW1wKDIwcHgs +IDR2dywgNDhweCkgNjBweDsgfQouY3YtYXJ0aWNsZSAuYXJ0LWhlYWQgeyBwb3NpdGlvbjogcmVs +YXRpdmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgcGFkZGluZy1ib3R0 +b206IDE0cHg7IG1hcmdpbi1ib3R0b206IDIycHg7IG1heC13aWR0aDogdmFyKC0tcmVhZCk7IG1h +cmdpbi1pbmxpbmU6IGF1dG87IH0KLmN2LWFydGljbGUgLmFydC1oZWFkIGgxIHsgZm9udC1zaXpl +OiB2YXIoLS1mcy14bCk7IG1hcmdpbjogMCAwIDhweDsgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXRp +Z2h0KTsgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRyYWNraW5nLXRpZ2h0KTsgcGFkZGluZy1yaWdo +dDogOXJlbTsgfQouY3YtYXJ0aWNsZSAuYXJ0LWRhdGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRv +cDogMnB4OyByaWdodDogMDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOiAxMnB4 +OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5jdi1hcnRpY2xlIC5hcnQtZGF0ZS5hcnQtdXBkYXRl +ZCB7IHRvcDogMTlweDsgfSAgIC8qICJnZcOkbmRlcnQiIGRpcmVrdCB1bnRlciAiU3RhbmQiICov +Ci5jdi1hcnRpY2xlIC5hcnQtY2xhc3MgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6 +ZTogMTFweDsgZm9udC13ZWlnaHQ6IDgwMDsgbGV0dGVyLXNwYWNpbmc6IC4wNGVtOyBwYWRkaW5n +OiAycHggOXB4OyBib3JkZXItcmFkaXVzOiA5OTlweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9Ci5j +di1hcnRpY2xlIC5hcnQtY2xhc3MuY2xzLXZzLW5mZCB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdl +ci1zb2Z0KTsgY29sb3I6IHZhcigtLWRhbmdlcik7IH0KLmN2LWFydGljbGUgLmFydC1jbGFzcy5j +bHMtbmZkIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1uZmQpIDIwJSwg +dHJhbnNwYXJlbnQpOyBjb2xvcjogdmFyKC0tbmZkKTsgfQouY3YtYXJ0aWNsZSAuYXJ0LXRhZ3Mg +eyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogNnB4OyBtYXJnaW4tdG9wOiAx +MnB4OyB9Ci5jdi1hcnRpY2xlIC5hcnQtdGFnIHsgZm9udC1zaXplOiAxMXB4OyBwYWRkaW5nOiAy +cHggMTBweDsgYm9yZGVyLXJhZGl1czogOTk5cHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBj +b2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9Ci5hcnQtZXh0cmEgeyBkaXNwbGF5OiBncmlkOyBncmlk +LXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTBweCAxNHB4OyB9Ci5hcnQtZXh0cmEg +LmZpZWxkIHsgbWFyZ2luOiAwOyB9Ci5jdi1hcnRpY2xlIC5hcnQtbWV0YSB7IGRpc3BsYXk6IGZs +ZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxNHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBm +b250LXNpemU6IDEycHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KLmN2LWFydGljbGUgLmFydC1t +ZXRhIHNwYW4geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2Fw +OiA1cHg7IH0KLmN2LWFydGljbGUgLmFydC1tZXRhIHN2ZyB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6 +IDE0cHg7IH0KLmN2LWFydGljbGUgLmFydC1jYXQgLmNkb3QgeyB3aWR0aDogOXB4OyBoZWlnaHQ6 +IDlweDsgYm9yZGVyLXJhZGl1czogNTAlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KLmN2LWFy +dGljbGUgLmFydC1ib2R5IHsgbWF4LXdpZHRoOiB2YXIoLS1yZWFkKTsgbWFyZ2luLWlubGluZTog +YXV0bzsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMS43OyB9Ci8qIEtlbm53w7ZydGVy +LU1pdHRlbGFuc2ljaHQgKi8KLmt3LWJhciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4 +LXdyYXA6IHdyYXA7IG1hcmdpbjogOHB4IDAgMnB4OyB9Ci5rdy10YmwgeyBkaXNwbGF5OiBmbGV4 +OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBtYXJnaW4tdG9wOiAxMnB4OyBtYXgtd2lkdGg6IDcy +MHB4OyB9Ci5rdy1yb3cgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1p +bm1heCgxNTBweCwgMWZyKSBtaW5tYXgoMTgwcHgsIDEuNWZyKTsgZ2FwOiAxNHB4OyBhbGlnbi1p +dGVtczogY2VudGVyOyBwYWRkaW5nOiA4cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZh +cigtLWxpbmUpOyB9Ci5rdy1yb3cua3ctbWFuYWdlIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBt +aW5tYXgoMTUwcHgsIDFmcikgbWlubWF4KDE4MHB4LCAxLjVmcikgYXV0bzsgfQoua3ctbGFiZWwt +cm8geyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9Ci5rdy12YWx1 +ZS1ybyB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgdXNlci1zZWxlY3Q6IGFsbDsgfQoua3ctdmFsdWUt +cm8ubW9ubywgLmt3LXZhbHVlLm1vbm8geyBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7IH0KLmt3 +LWxhYmVsLCAua3ctdmFsdWUgeyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsg +Zm9udDogaW5oZXJpdDsgcGFkZGluZzogN3B4IDlweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t +bGluZS0yKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJn +LTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmt3LWxhYmVsOmZvY3VzLCAua3ctdmFsdWU6Zm9j +dXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRv +dzogMCAwIDAgM3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9Ci8qIFByw7xmLUFuc2ljaHQgKE1pZ3Jh +dGlvbnMtTGlua3MgZHVyY2hnZWhlbikgKi8KLnBydWVmLXN0YXRzIHsgZm9udC1zaXplOiAxMnB4 +OyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBtYXJnaW4tdG9wOiA0cHg7IH0KLnBydWVmLWFjdGJh +ciB7IG1hcmdpbi10b3A6IDhweDsgfQoucHJ1ZWYtc3BsaXQgeyBkaXNwbGF5OiBncmlkOyBncmlk +LXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgzMDBweCwgNDYwcHgpIDFmcjsgZ2FwOiAxNnB4OyBh +bGlnbi1pdGVtczogc3RhcnQ7IG1hcmdpbi10b3A6IDEycHg7IH0KLnBydWVmLWxpc3QgeyBtaW4t +d2lkdGg6IDA7IH0KLnBydWVmLWdyb3VwIHsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDog +NzAwOyBsZXR0ZXItc3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNv +bG9yOiB2YXIoLS10ZXh0LWZudCk7IG1hcmdpbjogMTJweCAwIDRweDsgfQoucHJ1ZWYtcm93IHsg +Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20p +OyBwYWRkaW5nOiA3cHggOXB4OyBtYXJnaW4tYm90dG9tOiA1cHg7IGJhY2tncm91bmQ6IHZhcigt +LWJnLTIpOyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWxpbmUpOyB9Ci5wcnVlZi1yb3cu +c2VsIHsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWJyYW5kLXNvZnQpOyBib3JkZXItY29s +b3I6IHZhcigtLWJyYW5kKTsgfQoucHJ1ZWYtcm93LnN0LWtlZXAgeyBib3JkZXItbGVmdC1jb2xv +cjogdmFyKC0tb2spOyB9Ci5wcnVlZi1yb3cuc3QtZWRpdCB7IGJvcmRlci1sZWZ0LWNvbG9yOiB2 +YXIoLS13YXJuKTsgfQoucHJ1ZWYtcm93LnN0LWRlbGV0ZSB7IGJvcmRlci1sZWZ0LWNvbG9yOiB2 +YXIoLS1kYW5nZXIpOyBvcGFjaXR5OiAuNzI7IH0KLnBydWVmLXJvd3RvcCB7IGRpc3BsYXk6IGZs +ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5wcnVlZi10aXRsZSB7IGZsZXg6 +IDE7IG1pbi13aWR0aDogMDsgdGV4dC1hbGlnbjogbGVmdDsgZm9udC1zaXplOiAxMy41cHg7IGNv +bG9yOiB2YXIoLS10ZXh0KTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBz +aXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogMDsgY3Vy +c29yOiBwb2ludGVyOyBwYWRkaW5nOiAycHggMDsgfQoucHJ1ZWYtdGl0bGU6aG92ZXIgeyBjb2xv +cjogdmFyKC0tYnJhbmQtc3Ryb25nKTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KLnBy +dWVmLW9wdHMgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAzcHg7IGZsZXg6IDAgMCBhdXRv +OyB9Ci5wcnVlZi1vcHQgeyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHBhZGRp +bmc6IDNweCA4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IGJvcmRlcjogMXB4IHNv +bGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0t +dGV4dC1kaW0pOyBjdXJzb3I6IHBvaW50ZXI7IH0KLnBydWVmLW9wdC5vcHQta2VlcC5vbiB7IGJh +Y2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tb2spIDE4JSwgdHJhbnNwYXJlbnQp +OyBib3JkZXItY29sb3I6IHZhcigtLW9rKTsgY29sb3I6IHZhcigtLW9rKTsgfQoucHJ1ZWYtb3B0 +Lm9wdC1lZGl0Lm9uIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS13YXJu +KSAyMCUsIHRyYW5zcGFyZW50KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuKTsgY29sb3I6IHZh +cigtLXdhcm4pOyB9Ci5wcnVlZi1vcHQub3B0LWRlbGV0ZS5vbiB7IGJhY2tncm91bmQ6IGNvbG9y +LW1peChpbiBva2xjaCwgdmFyKC0tZGFuZ2VyKSAxNiUsIHRyYW5zcGFyZW50KTsgYm9yZGVyLWNv +bG9yOiB2YXIoLS1kYW5nZXIpOyBjb2xvcjogdmFyKC0tZGFuZ2VyKTsgfQoucHJ1ZWYtbm90ZSB7 +IG1hcmdpbi10b3A6IDZweDsgfQoucHJ1ZWYtbm90ZS10YSB7IHdpZHRoOiAxMDAlOyBib3gtc2l6 +aW5nOiBib3JkZXItYm94OyBmb250OiBpbmhlcml0OyBmb250LXNpemU6IDEyLjVweDsgcGFkZGlu +ZzogNnB4IDhweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYm9yZGVyLXJhZGl1 +czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4 +dCk7IHJlc2l6ZTogdmVydGljYWw7IH0KLnBydWVmLW5vdGUtdGE6Zm9jdXMgeyBvdXRsaW5lOiBu +b25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZh +cigtLWJyYW5kLXNvZnQpOyB9Ci5wcnVlZi1wcmV2aWV3IHsgcG9zaXRpb246IHN0aWNreTsgdG9w +OiA2cHg7IG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1iYXItaCkgLSAxMzBweCk7IG92 +ZXJmbG93OiBhdXRvOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1 +czogdmFyKC0tci1tZCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyB9Ci5wcnVlZi1wdi1oZWFk +IHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGlnbi1pdGVtczogY2VudGVyOyBn +YXA6IDhweDsgcGFkZGluZzogMTBweCAxMnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFy +KC0tbGluZSk7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogMDsgYmFja2dyb3VuZDogdmFyKC0tYmct +Mik7IHotaW5kZXg6IDE7IH0KLnBydWVmLXB2LXRpdGxlIHsgZm9udC13ZWlnaHQ6IDcwMDsgZmxl +eDogMSAxIDEwMCU7IH0KLnBydWVmLXB2LXRhcmdldCB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6 +IHZhcigtLXRleHQtZm50KTsgZmxleDogMSAxIDYwJTsgbWluLXdpZHRoOiAwOyBvdmVyZmxvdzog +aGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfQoucHJ1ZWYtcHYtYm9keSB7IHBhZGRp +bmc6IDEycHggMTRweDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyB9Ci5wcnVl +Zi1mcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDYwdmg7IGJvcmRlcjogMXB4IHNvbGlkIHZh +cigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogI2ZmZjsg +fQouY3YtYXJ0aWNsZSAuYXJ0LWJvZHkgaDIsIC5jdi1hcnRpY2xlIC5hcnQtYm9keSBoMyB7IG1h +cmdpbjogMS40ZW0gMCAuNGVtOyB9Ci5jdi1hcnRpY2xlIC5hcnQtYm9keSB1bCwgLmN2LWFydGlj +bGUgLmFydC1ib2R5IG9sIHsgcGFkZGluZy1sZWZ0OiAxLjRlbTsgfQouY3YtYXJ0aWNsZSAuYXJ0 +LWJvZHkgYSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmN2LWFydGljbGUgLmFydC1ib2R5IGJs +b2NrcXVvdGUgeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWxpbmUtMik7IG1hcmdpbjog +MWVtIDA7IHBhZGRpbmc6IC4yZW0gMWVtOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9CgovKiBB +cnRpa2VsLUljb24gaW0gU2lkZWJhci1FaW50cmFnICovCi5zaWRlLWxpc3QgYSAubGktaWMgeyBk +aXNwbGF5OiBpbmxpbmUtZmxleDsgZmxleDogMCAwIGF1dG87IGNvbG9yOiB2YXIoLS1icmFuZCk7 +IH0KLnNpZGUtbGlzdCBhIC5saS1pYyBzdmcgeyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyB9 +CgovKiBWZXLDtmZmZW50bGljaGVuLUJ1dHRvbiDigJ5oZWnDn+KAnCwgd2VubiBFbnR3dXJmIHZv +cmxpZWd0ICovCi5idG4ucHJpbWFyeS5ob3QgeyBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0t +YnJhbmQpLCB2YXIoLS1nbG93KTsgfQoKLyogTWVsZHVuZyBiZWltIEFuc3ByaW5nZW4ga3VyeiBo +ZXJ2b3JoZWJlbiAqLwouYnVsbC5mbGFzaCB7IGJveC1zaGFkb3c6IHZhcigtLWdsb3cpOyBib3Jk +ZXItY29sb3I6IHZhcigtLWJyYW5kKTsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAuM3MsIGJvcmRl +ci1jb2xvciAuM3M7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBFcndlaXRlcnRlciBFZGl0b3I6IFRv +b2xiYXItVHJlbm5lcgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLnd5LXNlcCB7IHdpZHRoOiAxcHg7IGFs +aWduLXNlbGY6IHN0cmV0Y2g7IG1hcmdpbjogMnB4IDNweDsgYmFja2dyb3VuZDogdmFyKC0tbGlu +ZSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PQogICBFaW5nZWJldHRldGUgQmlsZGVyICYgUERGcyAoVGh1 +bWJuYWlsIC0+IEtsaWNrIG9lZmZuZXQgTGlnaHRib3gpCiAgIEdpbHQgaW4gQXJ0aWtlbC1BbnNp +Y2h0ICguYXJ0LWJvZHkpIHdpZSBpbSBFZGl0b3IgKC53eS1ib2R5IC8gVGlueU1DRSkuCiAgID09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PSAqLwpmaWd1cmUuZW1iZWQgeyBtYXJnaW46IDE0cHggMDsgfQpmaWd1cmUuZW1i +ZWQuaW1nIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXgtd2lkdGg6IDEwMCU7IH0KZmlndXJl +LmVtYmVkLmltZyBpbWcgewogIG1heC13aWR0aDogbWluKDM2MHB4LCAxMDAlKTsgbWF4LWhlaWdo +dDogMjYwcHg7IHdpZHRoOiBhdXRvOyBoZWlnaHQ6IGF1dG87CiAgYm9yZGVyOiAxcHggc29saWQg +dmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBjdXJzb3I6IHpvb20taW47 +CiAgZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOwp9CmZpZ3VyZS5lbWJl +ZC5pbWcgZmlnY2FwdGlvbiB7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGZvbnQtc2l6ZTogLjhy +ZW07IG1hcmdpbi10b3A6IDVweDsgfQpmaWd1cmUuZW1iZWQucGRmIHsKICBkaXNwbGF5OiBpbmxp +bmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBjdXJzb3I6IHBvaW50ZXI7 +CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt +c20pOyBwYWRkaW5nOiA5cHggMTNweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgY29sb3I6 +IHZhcigtLXRleHQpOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cywgYmFja2dyb3VuZCAu +MTVzOwp9CmZpZ3VyZS5lbWJlZC5wZGY6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5k +KTsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92KTsgfQovKiBQREYtSWNvbiBwZXIgQ1NTLU1hc2tl +IChJbmxpbmUtU1ZHIHVlYmVybGVidCBkZW4gU2FuaXRpemVyIG5pY2h0KSAqLwpmaWd1cmUuZW1i +ZWQucGRmOjpiZWZvcmUgewogIGNvbnRlbnQ6ICIiOyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDIy +cHg7IGhlaWdodDogMjJweDsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsKICAtd2Via2l0LW1h +c2s6IHZhcigtLXBkZi1pY28pIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0OyBtYXNrOiB2YXIo +LS1wZGYtaWNvKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDsKfQpmaWd1cmUuZW1iZWQucGRm +IC5wZGYtbmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KZmlndXJlLmVtYmVkLnBkZiAucGRmLW1l +dGEgeyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBmb250LXNpemU6IC43OHJlbTsgfQoKLyogPT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09CiAgIExpZ2h0Ym94LU1vZGFsIChncm9zc2VzIEJpbGQgLyBQREYpCiAgID09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PSAqLwoubGlnaHRib3ggewogIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IHotaW5k +ZXg6IHZhcigtLXotbGlnaHRib3gpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVy +OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBwYWRkaW5nOiAzMnB4OyBiYWNrZ3JvdW5kOiBj +b2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJnKSAxOCUsIHJnYmEoMCwwLDAsLjgyKSk7IG9wYWNp +dHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgLjE2cyB2YXIoLS1lYXNlKTsKfQoubGlnaHRib3gu +c2hvdyB7IG9wYWNpdHk6IDE7IH0KLmxpZ2h0Ym94IC5sYi1ib3ggeyBtYXgtd2lkdGg6IDk0dnc7 +IG1heC1oZWlnaHQ6IDkydmg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47 +IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5saWdodGJveCAubGItYm94LnBkZiB7 +IHdpZHRoOiA5MHZ3OyBoZWlnaHQ6IDkwdmg7IH0KLmxpZ2h0Ym94IC5sYi1pbWcgeyBtYXgtd2lk +dGg6IDk0dnc7IG1heC1oZWlnaHQ6IDg2dmg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBi +YWNrZ3JvdW5kOiAjZmZmOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cpOyB9Ci5saWdodGJveCAu +bGItcGRmIHsgd2lkdGg6IDkwdnc7IGhlaWdodDogOTB2aDsgYm9yZGVyOiAwOyBib3JkZXItcmFk +aXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogI2ZmZjsgYm94LXNoYWRvdzogdmFyKC0tc2hh +ZG93KTsgfQoubGlnaHRib3ggLmxiLWNhcCB7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IC44NXJl +bTsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci5saWdodGJveCAubGIteCwgLmxpZ2h0Ym94IC5sYi1l +eHQgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyB3aWR0aDogMzhweDsgaGVpZ2h0 +OiAzOHB4OyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlm +eS1jb250ZW50OiBjZW50ZXI7CiAgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1k +KTsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMTIpOyBjb2xvcjogI2ZmZjsgY3Vyc29y +OiBwb2ludGVyOwp9Ci5saWdodGJveCAubGIteCB7IHJpZ2h0OiAxOHB4OyB9Ci5saWdodGJveCAu +bGItZXh0IHsgcmlnaHQ6IDY0cHg7IH0KLmxpZ2h0Ym94IC5sYi14OmhvdmVyLCAubGlnaHRib3gg +LmxiLWV4dDpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjI0KTsgfQoubGln +aHRib3ggLmxiLXggc3ZnLCAubGlnaHRib3ggLmxiLWV4dCBzdmcgeyB3aWR0aDogMTlweDsgaGVp +Z2h0OiAxOXB4OyB9CgovKiBMZXNlci1Nb2R1czoga2VpbmUgUGZsZWdlLUhpbndlaXNlL0J1dHRv +bnMgKi8KYm9keS5yZWFkZXIgLmVkaXQtYmFubmVyIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50 +OyB9CgovKiBUaW55TUNFIGltIEFydGlrZWwtRGlhbG9nIHNhdWJlciBlaW5wYXNzZW4gKi8KI2Fy +dC10bWNlICsgLnRveC10aW55bWNlLCAudG94LXRpbnltY2UgeyBib3JkZXItcmFkaXVzOiB2YXIo +LS1yLXNtKSAhaW1wb3J0YW50OyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgUmVmaW5lbWVudHM6IExh +Z2Uga2xpY2tiYXIsIEFydGlrZWwtQmVhcmJlaXRlbiwgTmF2LUtvcGYgbWl0ICIrQXJ0aWtlbCIK +ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09ICovCi8qIExhZ2UtU3RhdHVzIG51ciBpbSBSZWRha3RldXItTW9kdXMg +YW5rbGlja2JhciAqLwoubGFnZS1waWxsLmVkaXRhYmxlIHsgY3Vyc29yOiBwb2ludGVyOyB9Ci5s +YWdlLXBpbGwuZWRpdGFibGU6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgfQou +bGFnZS1waWxsIC5sYWdlLXR4dCB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCi8qICJCZWFyYmVpdGVu +Ii1Lbm9wZiBudXIgaW4gZGVyIEFydGlrZWwtQW5zaWNodCAobmljaHQgYmVpIERva3VtZW50ZW4p +ICovCi5jZW50ZXI6bm90KC5hcnRpY2xlKSAjY3YtZWRpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9y +dGFudDsgfQoKLyogTmF2aWdhdGlvbnMtS29wZjogVGl0ZWwgbGlua3MsICIrQXJ0aWtlbCIgcmVj +aHRzICovCi5yYWlsLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBq +dXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogOHB4OyB9CgovKiBTdGlmdCB6dW0g +QXJ0aWtlbC1CZWFyYmVpdGVuIGluIGRlciBTZWl0ZW5sZWlzdGUgKG51dHp0IC5zdGFyLUJhc2lz +KSAqLwouc2lkZS1saXN0IGEgLmFydC1lZGl0IHsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQou +c2lkZS1saXN0IGEgLmFydC1lZGl0OmhvdmVyIHsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQoKLyog +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09CiAgIFBIQVNFIDQg4oCUIEtvbGxhYm9yYXRpb246IFByYWVzZW56LCBLb25m +bGlrdC1EaWZmLCBBa3Rpdml0YWV0cy1Qb3BvdmVyCiAgID09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwovKiAid2ly +ZCBnZXJhZGUgYmVhcmJlaXRldCItQmFkZ2UgYW4gTmF2LUVpbnRyYWVnZW4gLyBNZWxkdW5nZW4g +Ki8KLmNvbGxhYi1iYWRnZSB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBj +ZW50ZXI7IGdhcDogNHB4OyBtYXJnaW4tbGVmdDogNnB4OwogIHBhZGRpbmc6IDFweCA3cHg7IGJv +cmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6 +IDcwMDsKICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLXdhcm4pIDIyJSwg +dmFyKC0tYmctMykpOyBjb2xvcjogdmFyKC0td2Fybik7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsg +ZmxleDogMCAwIGF1dG87Cn0KLmNvbGxhYi1iYWRnZSBzdmcgeyB3aWR0aDogMTFweDsgaGVpZ2h0 +OiAxMXB4OyB9CgovKiBDb2xsYWItQnV0dG9uICJoZWlzcyIsIHdlbm4gYW5kZXJlIGdlcmFkZSBi +ZWFyYmVpdGVuICovCiNjb2xsYWItYnRuLmhvdCB7IGNvbG9yOiB2YXIoLS13YXJuKTsgYm9yZGVy +LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLXdhcm4pIDUwJSwgdmFyKC0tbGluZSkp +OyB9CiNjb2xsYWItYnRuLmhvdDo6YWZ0ZXIgeyBjb250ZW50OiAiIjsgcG9zaXRpb246IGFic29s +dXRlOyB0b3A6IDdweDsgcmlnaHQ6IDdweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3cHg7IGJvcmRl +ci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0td2Fybik7IH0KI2NvbGxhYi1idG4geyBw +b3NpdGlvbjogcmVsYXRpdmU7IH0KCi8qIEtvbmZsaWt0LURpYWxvZyAoZWlnZW5lcyBPdmVybGF5 +KSAqLwouY29sbGFiLW92ZXJsYXkgeyBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyB6LWluZGV4 +OiB2YXIoLS16LW1vZGFsKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVz +dGlmeS1jb250ZW50OiBjZW50ZXI7CiAgcGFkZGluZzogMjhweDsgYmFja2dyb3VuZDogY29sb3It +bWl4KGluIG9rbGNoLCB2YXIoLS1iZykgMzUlLCByZ2JhKDAsMCwwLC42KSk7IGJhY2tkcm9wLWZp +bHRlcjogYmx1cigzcHgpOyB9Ci5jb2xsYWItZGxnIHsgd2lkdGg6IG1pbig3ODBweCwgOTZ2dyk7 +IG1heC1oZWlnaHQ6IDg4dmg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47 +CiAgYmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUt +Mik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIteGwpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cp +OyBvdmVyZmxvdzogaGlkZGVuOyB9Ci5jb2xsYWItZGxnLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBh +bGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHBhZGRpbmc6IDE2cHggMjBweDsgYm9yZGVy +LWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyB9Ci5jb2xsYWItZGxnLWhlYWQgc3ZnIHsg +d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgY29sb3I6IHZhcigtLXdhcm4pOyB9Ci5jb2xsYWIt +ZGxnLWhlYWQgaDIgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgfQouY29sbGFiLWRsZy1z +dWIgeyBwYWRkaW5nOiAxMnB4IDIwcHg7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRl +eHQtZGltKTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyB9Ci5jb2xsYWIt +ZGxnLWZvb3QgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7IGp1c3RpZnktY29udGVudDogZmxl +eC1lbmQ7IHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWxp +bmUpOyBmbGV4LXdyYXA6IHdyYXA7IH0KCi8qIERpZmYtQW5zaWNodCAqLwouZGlmZi12aWV3IHsg +ZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDEycHggMTZweDsgZm9udC1mYW1pbHk6 +IHZhcigtLW1vbm8pOyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGJhY2tncm91 +bmQ6IHZhcigtLWJnKTsgfQouZGlmZi1saW5lIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB3b3Jk +LWJyZWFrOiBicmVhay13b3JkOyBwYWRkaW5nOiAwIDZweDsgYm9yZGVyLXJhZGl1czogM3B4OyB9 +Ci5kaWZmLWxpbmUuYWRkIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1v +aykgMTYlLCB0cmFuc3BhcmVudCk7IGNvbG9yOiB2YXIoLS1vayk7IH0KLmRpZmYtbGluZS5kZWwg +eyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWRhbmdlcikgMTQlLCB0cmFu +c3BhcmVudCk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5kaWZmLWxpbmUuY3R4IHsgY29sb3I6 +IHZhcigtLXRleHQtZm50KTsgfQouZGlmZi1nYXAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9y +OiB2YXIoLS10ZXh0LWZudCk7IHBhZGRpbmc6IDJweCAwOyB9CgovKiBBa3Rpdml0YWV0cy0vWndp +c2NoZW5zdGFuZHMtUG9wb3ZlciAqLwouY29sbGFiLXBvcCB7IHBvc2l0aW9uOiBmaXhlZDsgei1p +bmRleDogdmFyKC0tei1wb3BvdmVyKTsgd2lkdGg6IG1pbigzNjBweCwgOTJ2dyk7IG1heC1oZWln +aHQ6IDcwdmg7IG92ZXJmbG93OiBhdXRvOwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3Jk +ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsg +Ym94LXNoYWRvdzogdmFyKC0tZWxldi0yKTsgcGFkZGluZzogOHB4OyB9Ci5jb2xsYWItc2VjICsg +LmNvbGxhYi1zZWMgeyBtYXJnaW4tdG9wOiA2cHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIo +LS1saW5lKTsgcGFkZGluZy10b3A6IDZweDsgfQouY29sbGFiLXNlYy1oIHsgZm9udC1zaXplOiB2 +YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwOyBjb2xvcjog +dmFyKC0tdGV4dC1kaW0pOyBwYWRkaW5nOiAxMHB4IDhweCA0cHg7IH0KLmNvbGxhYi1lbXB0eSB7 +IHBhZGRpbmc6IDJweCA4cHggNnB4OyBmb250LXNpemU6IDEycHg7IH0KLmNvbGxhYi1yb3cgeyBk +aXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDlweDsgcGFkZGluZzogN3B4 +IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IH0KLmNvbGxhYi1yb3cuYWN0IHsgY3Vy +c29yOiBwb2ludGVyOyB9Ci5jb2xsYWItcm93LmFjdDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigt +LWJnLWhvdik7IH0KLmNvbGxhYi1yb3ctaWMgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBm +bGV4OiAwIDAgYXV0bzsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgYm9yZGVy +LXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFy +KC0tYnJhbmQpOyB9Ci5jb2xsYWItcm93LWljIHN2ZyB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0 +cHg7IH0KLmNvbGxhYi1yb3ctbWFpbiB7IG1pbi13aWR0aDogMDsgZmxleDogMTsgfQouY29sbGFi +LXJvdy10IHsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBvdmVyZmxvdzogaGlk +ZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouY29s +bGFiLXJvdy1zIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBvdmVy +ZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3Jh +cDsgfQoKLyogVmVyc2lvbnMtSGlzdG9yaWUgKGFkbWluL2hpc3RvcmllLmpzLCBQaGFzZSA1KSAq +LwouaGlzdC1kbGcgeyB3aWR0aDogbWluKDExMDBweCwgOTZ2dyk7IH0KLmhpc3QtZGxnIC5jb2xs +YWItZGxnLWhlYWQgc3ZnIHsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQouaGlzdC1ncmlkIHsgZmxl +eDogMTsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNDBweCAxZnI7IG1p +bi1oZWlnaHQ6IDA7IH0KLmhpc3QtbGlzdCB7IG92ZXJmbG93OiBhdXRvOyBib3JkZXItcmlnaHQ6 +IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgcGFkZGluZzogOHB4OyB9Ci5oaXN0LWdycC1oIHsgZm9u +dC1zaXplOiB2YXIoLS1mcy14cyk7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAw +OwogIGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IHBhZGRpbmc6IDEycHggOHB4IDRweDsgcG9zaXRp +b246IHN0aWNreTsgdG9wOiAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgfQouaGlzdC1pdGVt +IHsgcGFkZGluZzogOHB4IDEwcHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBjdXJzb3I6 +IHBvaW50ZXI7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9Ci5oaXN0LWl0ZW06aG92 +ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyB9Ci5oaXN0LWl0ZW0uc2VsIHsgYmFja2dy +b3VuZDogdmFyKC0tYmctaG92KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmhpc3Qt +aXRlbS10b3AgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsg +anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9Ci5oaXN0LXdoZW4geyBmb250LXNpemU6 +IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0KLmhpc3QtaXRlbS1zdWIgeyBmb250LXNp +emU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IG1hcmdpbi10b3A6IDJweDsgb3ZlcmZs +b3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7 +IH0KLmhpc3QtYWN0IHsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXIt +c3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBhZGRpbmc6IDJweCA3 +cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7IH0KLmhpc3QtYWN0LnB1Ymxpc2ggeyBi +YWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWJyYW5kKSAxOCUsIHRyYW5zcGFy +ZW50KTsgY29sb3I6IHZhcigtLWJyYW5kKTsgfQouaGlzdC1hY3QucmVzdG9yZSB7IGJhY2tncm91 +bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0td2FybikgMjAlLCB0cmFuc3BhcmVudCk7IGNv +bG9yOiB2YXIoLS13YXJuKTsgfQouaGlzdC1wYW5lIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJl +Y3Rpb246IGNvbHVtbjsgbWluLXdpZHRoOiAwOyBtaW4taGVpZ2h0OiAwOyB9Ci5oaXN0LXBhbmUt +ZW1wdHkgeyBwYWRkaW5nOiAyOHB4IDIwcHg7IH0KLmhpc3QtcGFuZS1oZWFkIHsgcGFkZGluZzog +MTJweCAxNnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7IH0KLmhpc3Qt +cGFuZS10IHsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyB9Ci5oaXN0LXBhbmUt +cyB7IGZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLXRvcDogMnB4OyB9Ci5oaXN0LXBhbmUgLmRpZmYt +dmlldyB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgfQouaGlzdC1wYW5l +LWZvb3QgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7IHBh +ZGRpbmc6IDEycHggMTZweDsgfQouaGlzdC1wYW5lLWZvb3QgLm11dGVkIHsgZm9udC1zaXplOiAx +MnB4OyB9Ci5oaXN0LXBhbmUtZm9vdCAuYnRuIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1 +cHg7IH0KLmhpc3QtZm9vdC1oaW50IHsgZm9udC1zaXplOiAxMnB4OyB9CkBtZWRpYSAobWF4LXdp +ZHRoOiA4MjBweCkgeyAuaGlzdC1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0g +Lmhpc3QtbGlzdCB7IGJvcmRlci1yaWdodDogMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZh +cigtLWxpbmUpOyBtYXgtaGVpZ2h0OiAzOHZoOyB9IH0KCi8qID09PT09PT09PT09PT09PT09PT09 +PSBBcnRpa2VsIGFscyBQREYgKEJyb3dzZXItRHJ1Y2ssIFBoYXNlIDYpID09PT09PT09PT09PT09 +PT09PT09PSAqLwovKiAiQWxzIFBERiItS25vcGYgbnVyIGluIGRlciBBcnRpa2VsLUFuc2ljaHQg +emVpZ2VuIChuaWNodCBiZWkgaWZyYW1lLURva3MvRmVlZCkuICovCi5jdi1wZGYgeyBkaXNwbGF5 +OiBub25lOyB9Ci5jZW50ZXIuYXJ0aWNsZSAuY3YtcGRmIHsgZGlzcGxheTogaW5saW5lLWZsZXg7 +IH0KLnByaW50LWZvb3QgeyBkaXNwbGF5OiBub25lOyB9CgovKiBQb3J0YWwtRWluc3RlbGx1bmdl +biArIEthdGVnb3JpZW4gKFBoYXNlIDcpICovCi5zZXQtZGxnIHsgd2lkdGg6IG1pbig1NjBweCwg +OTZ2dyk7IH0KLnNldC1ib2R5IHsgcGFkZGluZzogMTRweCAyMHB4OyBvdmVyZmxvdzogYXV0bzsg +ZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9Ci5zZXQt +Ym9keSAuc2VnIHsgd2lkdGg6IG1heC1jb250ZW50OyB9Ci5zZXQtY29sb3IgeyBkaXNwbGF5OiBm +bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgfQouc2V0LWNvbG9yIGlucHV0IHsg +ZmxleDogMTsgcGFkZGluZzogOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsgYm9yZGVy +OiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9y +OiB2YXIoLS10ZXh0KTsgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOyBmb250LXNpemU6IDEycHg7 +IH0KLnNldC1sb2dvIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4 +cHg7IH0KLnNldC1sb2dvIGlucHV0IHsgZmxleDogMTsgcGFkZGluZzogOHB4OyBib3JkZXItcmFk +aXVzOiB2YXIoLS1yLW1kKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dy +b3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC1zaXplOiAxMnB4OyB9 +Ci5zZXQtbG9nby1wcmV2IHsgaGVpZ2h0OiAzMHB4OyB3aWR0aDogYXV0bzsgbWF4LXdpZHRoOiA4 +MHB4OyBvYmplY3QtZml0OiBjb250YWluOyBib3JkZXItcmFkaXVzOiA0cHg7IGJhY2tncm91bmQ6 +ICMwYzJhNDk7IHBhZGRpbmc6IDJweCA0cHg7IH0KLnNldC1wcmVzZXRzIHsgZGlzcGxheTogZmxl +eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA2cHg7IH0KLnNldC1wcmVzZXQtcm93IHsg +ZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0byBhdXRvOyBnYXA6 +IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQouc2V0LXByZXNldC1yb3cgaW5wdXQsIC5zZXQt +cHJlc2V0LXJvdyBzZWxlY3QgeyBwYWRkaW5nOiA4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt +bWQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1i +Zy0zKTsgY29sb3I6IHZhcigtLXRleHQpOyB9Ci5hZGQtcm93IHsgYWxpZ24tc2VsZjogZmxleC1z +dGFydDsgfQoKLyog4oCeWnVsZXR6dCBnZcOkbmRlcnQiLVdpZGdldCAoUGhhc2UgOCkgKi8KCi8q +IEluaGFsdHN2ZXJ6ZWljaG5pcyAvIFRPQyAoUGhhc2UgOCkgKi8KLmFydC10b2MgeyBkaXNwbGF5 +OiBub25lOyB9Ci5hcnQtdG9jLWggeyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWln +aHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDA7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IG1hcmdp +bi1ib3R0b206IDhweDsgfQouYXJ0LXRvYyB1bCB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjog +MDsgcGFkZGluZzogMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw +OiAycHg7IH0KLmFydC10b2MgYSB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEyLjVweDsg +Y29sb3I6IHZhcigtLXRleHQtZGltKTsgcGFkZGluZzogM3B4IDhweDsgYm9yZGVyLWxlZnQ6IDJw +eCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH0KLmFydC10 +b2MgYS5sdmwzIHsgcGFkZGluZy1sZWZ0OiAxOHB4OyBmb250LXNpemU6IDEycHg7IH0KLmFydC10 +b2MgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92 +KTsgfQouYXJ0LXRvYyBhLmFjdGl2ZSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IGJvcmRlci1sZWZ0 +LWNvbG9yOiB2YXIoLS1icmFuZCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KQG1lZGlhIChtaW4td2lk +dGg6IDEyODBweCkgewogIC5jZW50ZXIuYXJ0aWNsZSAuYXJ0LXRvYyB7IGRpc3BsYXk6IGJsb2Nr +OyBmbG9hdDogcmlnaHQ7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogNnB4OyB3aWR0aDogMjEwcHg7 +IG1hcmdpbjogNnB4IDAgMTZweCAyOHB4OyBtYXgtaGVpZ2h0OiA4MnZoOyBvdmVyZmxvdzogYXV0 +bzsgfQp9CkBtZWRpYSAobWF4LXdpZHRoOiAxMjc5cHgpIHsKICAuY2VudGVyLmFydGljbGUgLmFy +dC10b2MgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwIGF1dG8gMThweDsgbWF4LXdpZHRoOiB2 +YXIoLS1yZWFkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6 +IHZhcigtLXItbWQpOyBwYWRkaW5nOiAxMHB4IDEycHg7IH0KfQoKLyogQnJvdGtydW1lbiAoUGhh +c2UgOCkgKi8KI2N2LXBhdGgucGF0aCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50 +ZXI7IGdhcDogM3B4OyBmbGV4LXdyYXA6IHdyYXA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsg +bWluLXdpZHRoOiAwOyB9Ci5jcnVtYiB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRl +eHQtZGltKTsgbWF4LXdpZHRoOiAyNmNoOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93 +OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQphLmNydW1iIHsgY3Vyc29yOiBwb2lu +dGVyOyB9CmEuY3J1bWI6aG92ZXIgeyBjb2xvcjogdmFyKC0tYnJhbmQpOyB0ZXh0LWRlY29yYXRp +b246IHVuZGVybGluZTsgfQouY3J1bWItc2VjIHsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQou +Y3J1bWItY3VyIHsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXdlaWdodDogNjAwOyB9Ci5jcnVt +Yi1zZXAgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQou +Y3J1bWItc2VwIHN2ZyB7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7IH0KCi8qIE5hdmlnYXRp +b25zLUVkaXRvciAoUGhhc2UgNykgKi8KLm52LWRsZyB7IHdpZHRoOiBtaW4oNzIwcHgsIDk2dncp +OyB9Ci5udi10cmVlIHsgZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDEycHggMTZw +eDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9Ci5u +di1zZWMgeyBmbGV4OiAwIDAgYXV0bzsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJv +cmRlci1yYWRpdXM6IHZhcigtLXItbGcpOyBvdmVyZmxvdzogaGlkZGVuOyB9Ci5udi1zZWMtaGVh +ZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBwYWRkaW5n +OiA4cHggMTBweDsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGN1cnNvcjogZ3JhYjsgfQoubnYt +c2VjLWhlYWQuaXMtdG9wYmFyIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIo +LS13YXJuKSAxMCUsIHZhcigtLWJnLTMpKTsgfQoubnYtc2VjLWhlYWQuZHJhZ2dpbmcsIC5udi1y +b3cuZHJhZ2dpbmcgeyBvcGFjaXR5OiAuNDU7IH0KLm52LXNlYy1oZWFkLmRyb3AtYmVmb3JlLCAu +bnYtcm93LmRyb3AtYmVmb3JlIHsgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMCAwIHZhcigtLWJy +YW5kKTsgfQoubnYtc2VjLWhlYWQuZHJvcC1hZnRlciwgLm52LXJvdy5kcm9wLWFmdGVyIHsgYm94 +LXNoYWRvdzogaW5zZXQgMCAtMnB4IDAgMCB2YXIoLS1icmFuZCk7IH0KLm52LXNlYy10aXRsZSB7 +IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTRweDsgY3Vyc29yOiB0ZXh0OyB9Ci5udi1w +bGFjZSB7IHBhZGRpbmc6IDRweCA2cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBib3Jk +ZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgY29s +b3I6IHZhcigtLXRleHQpOyBmb250LXNpemU6IDEycHg7IH0KLm52LWNvbG9yIHsgd2lkdGg6IDI2 +cHg7IGhlaWdodDogMjZweDsgcGFkZGluZzogMDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlu +ZS0yKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIp +OyBjdXJzb3I6IHBvaW50ZXI7IGZsZXg6IDAgMCBhdXRvOyB9Ci5udi1jb2xvcjo6LXdlYmtpdC1j +b2xvci1zd2F0Y2gtd3JhcHBlciB7IHBhZGRpbmc6IDJweDsgfQoubnYtY29sb3I6Oi13ZWJraXQt +Y29sb3Itc3dhdGNoIHsgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiAzcHg7IH0KLm52LWJhZGdl +IHsgZm9udC1zaXplOiAxMHB4OyBwYWRkaW5nOiAycHggN3B4OyBib3JkZXItcmFkaXVzOiB2YXIo +LS1yLXBpbGwpOyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLXdhcm4pIDIy +JSwgdHJhbnNwYXJlbnQpOyBjb2xvcjogdmFyKC0td2Fybik7IH0KLm52LWJhZGdlLndhcm4geyBi +YWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWRhbmdlcikgMTglLCB0cmFuc3Bh +cmVudCk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5udi1hY3RzIHsgbWFyZ2luLWxlZnQ6IGF1 +dG87IGRpc3BsYXk6IGZsZXg7IGdhcDogMnB4OyBmbGV4OiAwIDAgYXV0bzsgfQoubnYtbGlzdCB7 +IHBhZGRpbmc6IDZweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw +OiAzcHg7IH0KLm52LXJvdyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdh +cDogOHB4OyBwYWRkaW5nOiA1cHggOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFj +a2dyb3VuZDogdmFyKC0tYmctMik7IGN1cnNvcjogZ3JhYjsgfQoubnYtcm93OmhvdmVyIHsgYmFj +a2dyb3VuZDogdmFyKC0tYmctaG92KTsgfQoubnYtZ3JpcCB7IGNvbG9yOiB2YXIoLS10ZXh0LWZu +dCk7IGN1cnNvcjogZ3JhYjsgZm9udC1zaXplOiAxMXB4OyBsZXR0ZXItc3BhY2luZzogLTJweDsg +dXNlci1zZWxlY3Q6IG5vbmU7IH0KLm52LWljIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGNvbG9y +OiB2YXIoLS1icmFuZCk7IH0gLm52LWljIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7 +IH0KLm52LWxibCB7IGZvbnQtc2l6ZTogMTNweDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVy +ZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLm52LWtpZHMgeyB9IC8qIEVp +bnJ1ZWNrdW5nIHZpYSBpbmxpbmUgbWFyZ2luLWxlZnQgcHJvIFRpZWZlICovCi5udi1taW5pIHsg +d2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNl +bnRlcjsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLXRl +eHQtZGltKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9u +dC1zaXplOiAxMnB4OyB9Ci5udi1taW5pOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7 +IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQoubnYtbWluaSBzdmcgeyB3aWR0aDogMTRweDsgaGVpZ2h0 +OiAxNHB4OyB9Ci5udi1kcm9wIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1m +bnQpOyBwYWRkaW5nOiA2cHggOHB4OyBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tbGluZS0yKTsg +Ym9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IHRleHQtYWxpZ246IGNlbnRlcjsgfQoubnYtZHJv +cC5vdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7IGNvbG9yOiB2YXIoLS1icmFuZCk7 +IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYnJhbmQpIDglLCB0cmFuc3Bh +cmVudCk7IH0KCi8qIFJvbGxlbi1WZXJ3YWx0dW5nIChQaGFzZSA3KSAqLwoucm9sZXMtZGxnIHsg +d2lkdGg6IG1pbig1NjBweCwgOTZ2dyk7IH0KLnJvbGVzLWJvZHkgeyBwYWRkaW5nOiAxNHB4IDIw +cHg7IG92ZXJmbG93OiBhdXRvOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1u +OyBnYXA6IDEycHg7IH0KLnJvbGVzLWhpbnQgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDlweDsgYWxp +Z24taXRlbXM6IGZsZXgtc3RhcnQ7IHBhZGRpbmc6IDEwcHggMTJweDsgYm9yZGVyLXJhZGl1czog +dmFyKC0tci1tZCk7CiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS13YXJu +KSAxNCUsIHRyYW5zcGFyZW50KTsgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIG9rbGNo +LCB2YXIoLS13YXJuKSA0MCUsIHZhcigtLWxpbmUpKTsgZm9udC1zaXplOiAxMi41cHg7IH0KLnJv +bGVzLWhpbnQgc3ZnIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgZmxleDogMCAwIGF1dG87 +IGNvbG9yOiB2YXIoLS13YXJuKTsgfQoucm9sZXMtbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgt +ZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyB9Ci5yb2xlcy1yb3cgeyBkaXNwbGF5OiBncmlk +OyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxMTBweCwgYXV0bykgMWZyIGF1dG87IGdh +cDogMTBweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBwYWRkaW5nOiA2cHggOHB4OyBib3JkZXIt +cmFkaXVzOiB2YXIoLS1yLXNtKTsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IH0KLnJvbGVzLWsg +eyBmb250LXNpemU6IDEzcHg7IH0KLnJvbGVzLW4geyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2 +YXIoLS10ZXh0LWRpbSk7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz +OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5yb2xlcy1lbXB0eSB7IHBhZGRpbmc6IDRweCA4cHg7 +IH0KLnJvbGVzLWFkZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlu +bWF4KDExMHB4LCAxZnIpIDEuNGZyIGF1dG87IGdhcDogOHB4OyBtYXJnaW4tdG9wOiA2cHg7IH0K +LnJvbGVzLWFkZCBpbnB1dCB7IHBhZGRpbmc6IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1t +ZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigtLWJn +LTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLm1pbmktYnRuLm9mZiB7IG9wYWNpdHk6IC40OyB9 +CgovKiBMYWdlLVZvcmxhZ2VuLVBpY2tlciAoUGhhc2UgNykgKi8KLmxhZ2UtcGljayB7IHBhZGRp +bmc6IDE0cHggMjBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2Fw +OiA4cHg7IH0KLmxhZ2UtY2hpcHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdh +cDogOHB4OyB9Ci5sYWdlLWNoaXAgeyBwYWRkaW5nOiA3cHggMTJweDsgYm9yZGVyLXJhZGl1czog +dmFyKC0tci1waWxsKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgYmFja2dyb3Vu +ZDogdmFyKC0tYmctMyk7CiAgY29sb3I6IHZhcigtLXRleHQpOyBjdXJzb3I6IHBvaW50ZXI7IGZv +bnQtc2l6ZTogMTNweDsgfQoubGFnZS1jaGlwOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmct +aG92KTsgfQoubGFnZS1jaGlwLmFsZXJ0IHsgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2ts +Y2gsIHZhcigtLXdhcm4pIDUwJSwgdmFyKC0tbGluZS0yKSk7IH0KLmxhZ2UtY2hpcC5vayB7IGJv +cmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1vaykgNTAlLCB2YXIoLS1saW5l +LTIpKTsgfQoubGFnZS1mcmVlIHsgcGFkZGluZzogMTBweDsgYm9yZGVyLXJhZGl1czogdmFyKC0t +ci1tZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IGJhY2tncm91bmQ6IHZhcigt +LWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBFSU5TVEVM +TFVOR1MtS09OU09MRSAoYWRtaW4vc2V0dGluZ3MuanMpIOKAlCBUYWItTmF2aWdhdGlvbiBpbSBD +RC1TdGlsCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PSAqLwouYWRtLWhvc3QgeyBwYWRkaW5nOiAwICFpbXBvcnRh +bnQ7IGdhcDogMCAhaW1wb3J0YW50OyB9Ci5hZG0tc2hlbGwgeyBkaXNwbGF5OiBncmlkOyBncmlk +LXRlbXBsYXRlLWNvbHVtbnM6IDIzMHB4IDFmcjsgbWluLWhlaWdodDogbWluKDYydmgsIDU2MHB4 +KTsgfQouYWRtLW5hdiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdh +cDogM3B4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZh +cigtLWxpbmUpOyBwYWRkaW5nOiAxNHB4IDEycHg7IG92ZXJmbG93LXk6IGF1dG87IH0KLmFkbS10 +YWIgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHBhZGRp +bmc6IDEwcHggMTFweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7IGNvbG9yOiB2YXIoLS10 +ZXh0LWRpbSk7IGZvbnQtc2l6ZTogMTMuNXB4OyBmb250LXdlaWdodDogNjAwOyB0ZXh0LWFsaWdu +OiBsZWZ0OyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1ci0xKSwgY29sb3IgdmFyKC0t +ZHVyLTEpOyB9Ci5hZG0tdGFiIHN2ZyB7IHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDE3cHg7IGZsZXg6 +IDAgMCBhdXRvOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBkaXNwbGF5OiBibG9jazsgfQouYWRt +LXRhYjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMpOyBjb2xvcjogdmFyKC0tdGV4dCk7 +IH0KLmFkbS10YWIuYWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtc29mdCk7IGNvbG9y +OiB2YXIoLS1icmFuZC1zdHJvbmcpOyBmb250LXdlaWdodDogNzAwOyBib3gtc2hhZG93OiBpbnNl +dCAzcHggMCAwIHZhcigtLWJyYW5kKTsgfQouYWRtLXRhYi5hY3RpdmUgc3ZnIHsgY29sb3I6IHZh +cigtLWJyYW5kKTsgfQouYWRtLXBhbmUgeyBwYWRkaW5nOiAxOHB4IDIwcHggMjRweDsgb3ZlcmZs +b3cteTogYXV0bzsgbWluLXdpZHRoOiAwOyB9Ci5hZG0tc2VjaGVhZCB7IG1hcmdpbjogMCAwIDE2 +cHg7IH0KLmFkbS1zZWNoZWFkIGgzIHsgbWFyZ2luOiAwIDAgM3B4OyBmb250LXNpemU6IHZhcigt +LWZzLW1kKTsgZm9udC13ZWlnaHQ6IDcwMDsgfQouYWRtLXNlY2hlYWQgcCB7IG1hcmdpbjogMDsg +Zm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IH0KLmFkbS1n +cm91cCB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIo +LS1yLWxnKTsgcGFkZGluZzogMTRweCAxNnB4OyBtYXJnaW4tYm90dG9tOiAxNHB4OyBiYWNrZ3Jv +dW5kOiB2YXIoLS1iZy0yKTsgfQouYWRtLWdyb3VwLWggeyBmb250LXNpemU6IDExcHg7IGZvbnQt +d2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAuMDdlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVy +Y2FzZTsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgbWFyZ2luLWJvdHRvbTogMTJweDsgfQouYWRt +LWdyaWQyIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBn +YXA6IDZweCAxOHB4OyB9Ci5hZG0tbm90ZSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTJweDsgcGFk +ZGluZzogMTRweCAxNnB4OyBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gb2tsYWIsIHZh +cigtLXdhcm4pIDMwJSwgdmFyKC0tbGluZSkpOyBiYWNrZ3JvdW5kOiB2YXIoLS13YXJuLXNvZnQp +OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGxp +bmUtaGVpZ2h0OiAxLjU1OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBtYXJnaW4tYm90dG9tOiAx +NHB4OyB9Ci5hZG0tbm90ZSBzdmcgeyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBjb2xvcjog +dmFyKC0td2Fybik7IGZsZXg6IDAgMCBhdXRvOyB9Ci5hZG0tbm90ZSBiIHsgY29sb3I6IHZhcigt +LXRleHQpOyB9Ci5hZG0tY29sb3IgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVy +OyBnYXA6IDhweDsgfQouYWRtLWNvbG9yIGlucHV0W3R5cGU9ImNvbG9yIl0geyB3aWR0aDogMzhw +eDsgaGVpZ2h0OiAzNHB4OyBwYWRkaW5nOiAycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxp +bmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0z +KTsgY3Vyc29yOiBwb2ludGVyOyBmbGV4OiAwIDAgYXV0bzsgfQouYWRtLWNvbG9yIGlucHV0W3R5 +cGU9InRleHQiXSB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgcGFkZGluZzogOHB4IDEwcHg7IGJv +cmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy0zKTsgYm9yZGVy +OiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOyBmb250 +LXNpemU6IDEycHg7IH0KLmFkbS1jb2xvciBpbnB1dFt0eXBlPSJ0ZXh0Il06Zm9jdXMgeyBvdXRs +aW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kKTsgYm94LXNoYWRvdzogMCAwIDAg +M3B4IHZhcigtLWJyYW5kLXNvZnQpOyB9CkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkgewogIC5h +ZG0tc2hlbGwgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogIC5hZG0tbmF2IHsgZmxl +eC1kaXJlY3Rpb246IHJvdzsgZmxleC13cmFwOiB3cmFwOyBib3JkZXItcmlnaHQ6IDA7IGJvcmRl +ci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgfQogIC5hZG0tZ3JpZDIgeyBncmlkLXRl +bXBsYXRlLWNvbHVtbnM6IDFmcjsgfQp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgTElOSy1QUsOcRlVO +RyAoZmVhdHVyZXMvbGlua2NoZWNrLmpzKSDigJQgUmVwb3J0IGltIENELVN0aWwKICAgPT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09ICovCi5sYy1zdW0tdCB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFy +KC0tdGV4dC1kaW0pOyB9Ci5sYy1zdW0tdCBiIHsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXdl +aWdodDogNzAwOyB9Ci5sYy1iYXIgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IHZhcigtLXNwLTIpOyBm +bGV4LXdyYXA6IHdyYXA7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbjogNHB4IDAgMnB4OyB9 +Ci5sYy1iYXIgLmJ0biBzdmcgeyBkaXNwbGF5OiBibG9jazsgfQoubGMtbGlzdCB7IGRpc3BsYXk6 +IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4OyBtYXgtaGVpZ2h0OiA1NnZo +OyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAycHg7IH0KLmxjLWxpc3QgLmZlZWQtc2VjdGlv +bi1sYWJlbCB7IG1hcmdpbjogMTJweCAycHggNnB4OyB9Ci5sYy1yb3cgeyBkaXNwbGF5OiBmbGV4 +OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDExcHg7IHBhZGRpbmc6IDlweCAxMnB4OyBib3Jk +ZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsg +YmFja2dyb3VuZDogdmFyKC0tYmctMik7IHRleHQtYWxpZ246IGxlZnQ7IHRyYW5zaXRpb246IGJh +Y2tncm91bmQgLjEycywgYm9yZGVyLWNvbG9yIC4xMnM7IHdpZHRoOiAxMDAlOyB9Ci5sYy1yb3c6 +aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBib3JkZXItY29sb3I6IHZhcigtLWxp +bmUtMik7IH0KLmxjLW1haW4geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1u +OyBtaW4td2lkdGg6IDA7IGZsZXg6IDE7IGdhcDogMXB4OyB9Ci5sYy1sYmwgeyBmb250LXNpemU6 +IDEzLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxv +dzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLmxjLXBhdGggeyBmb250LXNpemU6 +IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3Zl +cmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5sYy1iYWRnZSB7IGZsZXg6 +IDAgMCBhdXRvOyBtaW4td2lkdGg6IDUycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXpl +OiAxMC41cHg7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBwYWRk +aW5nOiAzcHggOXB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwpOyB9Ci5sYy1iYWRnZS5v +ayAgIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1vaykgMTYlLCB0cmFu +c3BhcmVudCk7IGNvbG9yOiB2YXIoLS1vayk7IH0KLmxjLWJhZGdlLmJhZCAgeyBiYWNrZ3JvdW5k +OiB2YXIoLS1kYW5nZXItc29mdCk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9Ci5sYy1iYWRnZS5l +eHQgIHsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGNvbG9yOiB2YXIoLS10ZXh0LWZudCk7IGJv +cmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtMik7IH0KLmxjLWJhZGdlLmlkbGUgeyBiYWNrZ3Jv +dW5kOiB2YXIoLS1iZy0zKTsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQoubGMtYmFkZ2Uud2Fp +dCB7IGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBjb2xvcjogdmFyKC0tYnJhbmQtc3Ry +b25nKTsgfQoubGMtZW1wdHkgeyBwYWRkaW5nOiAyNnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNv +bG9yOiB2YXIoLS10ZXh0LWZudCk7IGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1saW5lLTIpOyBi +b3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kKTsgfQoubGMtaGludCB7IGZvbnQtc2l6ZTogMTIuNXB4 +OyB9Ci8qIElubGluZS1JY29ucyBpbiBkZW4gTGlzdGVuemVpbGVuICh6LiBCLiBNaWdyYXRpb25z +LVdhcm51bmcpIGtsZWluIGhhbHRlbi4gKi8KLmxjLXBhdGggc3ZnIHsgd2lkdGg6IDEzcHg7IGhl +aWdodDogMTNweDsgdmVydGljYWwtYWxpZ246IC0ycHg7IGZsZXg6IDAgMCBhdXRvOyB9Ci8qIE1p +Z3JhdGlvbnMtUGFuZWw6IFZvcmZpbHRlci1MZWlzdGUgKyBUeXAtQmFkZ2UuICovCi5taWctZmls +dGVyIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGlnbi1pdGVtczogY2VudGVy +OyBnYXA6IDZweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQoubWlnLWZpbHRlciAubWlnLWNoaXAg +eyBwYWRkaW5nOiAzcHggMTFweDsgZm9udC1zaXplOiAxMi41cHg7IGJvcmRlci1yYWRpdXM6IDk5 +OXB4OyB9Ci5taWctc2VwIHsgd2lkdGg6IDFweDsgYWxpZ24tc2VsZjogc3RyZXRjaDsgYmFja2dy +b3VuZDogdmFyKC0tbGluZS0yKTsgbWFyZ2luOiAycHggNHB4OyB9Ci5taWctc2VhcmNoIHsgd2lk +dGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDEycHg7IHBhZGRpbmc6IDhweCAxMnB4OyBib3JkZXI6 +IDFweCBzb2xpZCB2YXIoLS1saW5lLTIpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBi +YWNrZ3JvdW5kOiB2YXIoLS1iZy0yKTsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXNpemU6IDEz +LjVweDsgfQoubWlnLXNlYXJjaDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjog +dmFyKC0tYnJhbmQpOyB9Ci5taWctdGFnIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4t +bGVmdDogOHB4OyBwYWRkaW5nOiAxcHggOHB4OyBmb250LXNpemU6IDEwLjVweDsgZm9udC13ZWln +aHQ6IDcwMDsKICBib3JkZXItcmFkaXVzOiA5OTlweDsgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQt +c29mdCk7IGNvbG9yOiB2YXIoLS1icmFuZC1zdHJvbmcpOyB2ZXJ0aWNhbC1hbGlnbjogMXB4OyB9 +Ci5taWctY2xzIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdDogOHB4OyBwYWRk +aW5nOiAxcHggOHB4OyBmb250LXNpemU6IDEwLjVweDsgZm9udC13ZWlnaHQ6IDgwMDsKICBib3Jk +ZXItcmFkaXVzOiA5OTlweDsgdmVydGljYWwtYWxpZ246IDFweDsgfQoubWlnLWNscy5jbHMtdnMt +bmZkIHsgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyLXNvZnQpOyBjb2xvcjogdmFyKC0tZGFuZ2Vy +KTsgfQoubWlnLWNscy5jbHMtbmZkIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2 +YXIoLS1uZmQpIDIwJSwgdHJhbnNwYXJlbnQpOyBjb2xvcjogdmFyKC0tbmZkKTsgfQoubWlnLXJv +dy1jaGVjayB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBtYXJn +aW46IDAgMnB4OyB9Ci5taWctYnVsayB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50 +ZXI7IGdhcDogMTBweDsgbWFyZ2luOiA0cHggMCAxMHB4OyBwYWRkaW5nOiA4cHggMTJweDsKICBi +b3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icmFuZCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQp +OyBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1zb2Z0KTsgfQoubWlnLXByZXZiYXIgeyBkaXNwbGF5 +OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTBweDsgZm9udC1z +aXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyBtYXJnaW4tYm90dG9tOiA2cHg7IH0K +Lm1pZy1wcmV2aWV3IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIg +MWZyOyBnYXA6IDEwcHg7IGhlaWdodDogNjJ2aDsgfQoubWlnLXByZXZpZXcgaWZyYW1lIHsgd2lk +dGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsg +Ym9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7IGJhY2tncm91bmQ6ICNmZmY7IH0KCi8qIE9yZG5l +ci1Lbm90ZW4tTW9kYWw6IFZlcnplaWNobmlzYW5zaWNodCAoSUUtTW9kdXMpICovCi5mb2xkZXIt +YmFyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OyBtYXJn +aW4tYm90dG9tOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmZvbGRlci1iYXIgLm1vbm8geyBm +b250LXNpemU6IDEycHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfQouZm9sZGVyLWZyYW1lIHsg +d2lkdGg6IDEwMCU7IGhlaWdodDogNjB2aDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0y +KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCk7IGJhY2tncm91bmQ6ICNmZmY7IH0KLmZvbGRl +ci1saXN0IHsgbWF4LWhlaWdodDogNjJ2aDsgb3ZlcmZsb3c6IGF1dG87IGJvcmRlcjogMXB4IHNv +bGlkIHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyB9Ci5mb2xkZXIt +cm93IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBwYWRk +aW5nOiA4cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXItYm90dG9tOiAxcHggc29saWQg +dmFyKC0tbGluZSk7IH0KLmZvbGRlci1yb3c6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IDA7 +IH0KLmZvbGRlci1yb3c6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ob3ZlciwgcmdiYSgxMjcs +MTI3LDEyNywuMTApKTsgfQouZm9sZGVyLXJvdyAuZnItaWMgeyBkaXNwbGF5OiBpbmxpbmUtZmxl +eDsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgb3BhY2l0eTogLjg7IGZsZXg6IDAgMCBhdXRv +OyB9Ci5mb2xkZXItcm93IC5mci1pYyBzdmcgeyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyB9 +Ci5mb2xkZXItcm93IC5mci1uYW1lIHsgZmxleDogMSAxIGF1dG87IHdvcmQtYnJlYWs6IGJyZWFr +LWFsbDsgfQouZm9sZGVyLXJvdyAuZnItbWV0YSB7IGZvbnQtc2l6ZTogMTFweDsgZmxleDogMCAw +IGF1dG87IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLm5lLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGZs +ZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9Ci5u +ZS1yb3cgLm5lLWxibCB7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsgfQoubmUt +cm93IGlucHV0LCAubmUtcm93IHNlbGVjdCB7IGZvbnQ6IGluaGVyaXQ7IHBhZGRpbmc6IDdweCAx +MHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLW1kLCA4cHgpOyBib3JkZXI6IDFweCBzb2xpZCB2 +YXIoLS1saW5lLTIsICM4ODgpOyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsg +fQoubmUtaWNvd3JhcCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDog +MTBweDsgfQoubmUtaWNvd3JhcCBzZWxlY3QgeyBmbGV4OiAxIDEgYXV0bzsgfQoubmUtcHJldiB7 +IGRpc3BsYXk6IGlubGluZS1mbGV4OyB3aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4OyBvcGFjaXR5 +OiAuOTsgZmxleDogMCAwIGF1dG87IH0KLm5lLXByZXYgc3ZnIHsgd2lkdGg6IDIycHg7IGhlaWdo +dDogMjJweDsgfQovKiBBcnp0LUFuZm9yZGVydW5nc3JlZ2lzdGVyIChNb2RhbCkgKi8KLm1vZGFs +Lm1vZGFsLXhsIC5tb2RhbC1jYXJkIHsgbWF4LXdpZHRoOiBtaW4oOTZ2dywgMTUwMHB4KTsgd2lk +dGg6IDk2dnc7IH0KLm1vZGFsLWJvZHkuYXJ6dC1ib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbjsgZGlz +cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWluLWhlaWdodDogMDsgfQouYXJ6 +dC1ob3N0IHsgd2lkdGg6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1 +bW47IG1pbi1oZWlnaHQ6IDA7IGZsZXg6IDEgMSBhdXRvOyB9Ci5hcnp0LXRibHdyYXAgeyBmbGV4 +OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3c6IGF1dG87IGJvcmRlcjogMXB4IHNv +bGlkIHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyB9Ci5hcnp0LXRi +bCB7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHdpZHRoOiAxMDAlOyBmb250LXNpemU6IDEz +cHg7IH0KLmFyenQtdGJsIHRoLCAuYXJ6dC10YmwgdGQgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIo +LS1saW5lLTIpOyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBwYWRkaW5n +OiAwOyB9Ci5hcnp0LXRibCB0aCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLTMsIHJnYmEoMTI3LDEy +NywxMjcsLjE0KSk7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogMDsgei1pbmRleDogMTsgZm9udC13 +ZWlnaHQ6IDYwMDsgcGFkZGluZzogNXB4IDdweDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouYXJ6 +dC10YmwgdGQucm8geyB3aGl0ZS1zcGFjZTogbm93cmFwOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0p +OyBwYWRkaW5nOiA0cHggN3B4OyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyB9 +Ci5hcnp0LXRibCB0ZCA+IHNwYW4geyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogNHB4IDdweDsg +fQouYXJ6dC10YmwgaW5wdXQgeyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDsg +Ym9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZm9udDogaW5oZXJpdDsgY29sb3I6 +IGluaGVyaXQ7IHBhZGRpbmc6IDRweCA3cHg7IH0KLmFyenQtdGJsIGlucHV0OmZvY3VzIHsgb3V0 +bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzKTsgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IGJhY2tn +cm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXItcmFkaXVzOiAzcHg7IH0KLmFyenQtdGJsIHRib2R5 +IHRyOm50aC1jaGlsZChldmVuKSB7IGJhY2tncm91bmQ6IHJnYmEoMTI3LDEyNywxMjcsLjA1KTsg +fQouYXJ6dC10YmwgdGJvZHkgdHIuYXJ6dC1pbmNvbXBsZXRlIHsgYmFja2dyb3VuZDogdmFyKC0t +ZGFuZ2VyLXNvZnQsIHJnYmEoMjAwLDYwLDYwLC4xMykpOyB9Ci5hcnp0LXRibCB0ZC5jb2wtZGVs +IHsgd2lkdGg6IDM0cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMnB4OyB9Ci5hcnp0 +LXRibCB0ZC5jb2wtZGVsIC5taW5pLWJ0biB7IHBhZGRpbmc6IDNweDsgfQovKiBCZXN0YWV0aWd1 +bmdzLS9IaW53ZWlzLU1vZGFsIChQLmNvbmZpcm0gLyBQLmFsZXJ0KSAqLwouYXNrLWJvZHkgeyB0 +ZXh0LWFsaWduOiBjZW50ZXI7IH0KLmFzay1ib2R5IC5hc2stbG9nbyB7IG1heC1oZWlnaHQ6IDU2 +cHg7IG1heC13aWR0aDogNzAlOyBtYXJnaW46IDJweCBhdXRvIDE0cHg7IGRpc3BsYXk6IGJsb2Nr +OyBvYmplY3QtZml0OiBjb250YWluOyB9Ci5hc2stYm9keSAuYXNrLW1zZyB7IGZvbnQtc2l6ZTog +MTVweDsgbGluZS1oZWlnaHQ6IDEuNTsgd2hpdGUtc3BhY2U6IHByZS1saW5lOyBtYXJnaW46IDA7 +IH0KLyogUGVyc29uYWxsaXN0ZSAoQWRtaW4pICovCi5wbC10Ymx3cmFwIHsgb3ZlcmZsb3cteDog +YXV0bzsgfQoucGwtdGJsIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgd2lkdGg6IDEwMCU7 +IGZvbnQtc2l6ZTogMTNweDsgbWFyZ2luLXRvcDogMTBweDsgfQoucGwtdGJsIHRkIGlucHV0W3R5 +cGU9dGV4dF0geyBtaW4td2lkdGg6IDdjaDsgfQoucGwtdGJsIHRoLCAucGwtdGJsIHRkIHsgYm9y +ZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBwYWRkaW5nOiA0cHggNnB4OyB0ZXh0 +LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9Ci5wbC10YmwgdGggeyBmb250 +LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9Ci5wbC10YmwgdGgucGwtYywg +LnBsLXRibCB0ZC5wbC1jIHsgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogNjRweDsgfQoucGwt +dGJsIHRkIGlucHV0W3R5cGU9dGV4dF0geyB3aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVy +LWJveDsgZm9udDogaW5oZXJpdDsgcGFkZGluZzogNHB4IDZweDsgYm9yZGVyOiAxcHggc29saWQg +dmFyKC0tbGluZS0yLCAjODg4KTsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiB0cmFu +c3BhcmVudDsgY29sb3I6IGluaGVyaXQ7IH0KLnBsLXRibCBpbnB1dFt0eXBlPWNoZWNrYm94XSB7 +IHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDE3cHg7IH0KLnBsLWFkZCB7IGRpc3BsYXk6IGZsZXg7IGZs +ZXgtd3JhcDogd3JhcDsgZ2FwOiA4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbi10b3A6 +IDE0cHg7IHBhZGRpbmctdG9wOiAxMnB4OyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbGlu +ZSk7IH0KLnBsLWFkZCBpbnB1dFt0eXBlPXRleHRdIHsgZm9udDogaW5oZXJpdDsgcGFkZGluZzog +N3B4IDlweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yLCAjODg4KTsgYm9yZGVyLXJh +ZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IGluaGVyaXQ7IH0KLnBs +LWFkZCAucGwtYWRkLWsgeyB3aWR0aDogMTIwcHg7IH0gLnBsLWFkZCAucGwtYWRkLWcgeyB3aWR0 +aDogOTZweDsgfSAucGwtYWRkIC5wbC1hZGQtdiwgLnBsLWFkZCAucGwtYWRkLW4geyB3aWR0aDog +MTMwcHg7IH0KLnBsLWFkZCAucGwtYWRkLWNiIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWdu +LWl0ZW1zOiBjZW50ZXI7IGdhcDogNHB4OyBmb250LXNpemU6IDEycHg7IH0KLyogTGluayBpbSBN +b2RhbC1GZW5zdGVyIChPZWZmbmVuLU1vZHVzICJtb2RhbCIpICovCi5saW5rLW1vZGFsLWJvZHkg +eyBwYWRkaW5nOiAwOyB9Ci5saW5rLW1vZGFsLWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDog +Nzh2aDsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9Ci5wZS1saW5rIC5wZS1vcGVuIHsg +ZmxleDogMCAwIGF1dG87IH0KLyogTWVsZHVuZ2VuOiBBYnNhdHotL1plaWxlbnVtYnJ1ZWNoZSBp +bSBCb2R5IGVyaGFsdGVuIChmdWVyIGltcG9ydGllcnRlIE1laHJ6ZWlsZXIpICovCi5idWxsIC5i +b2R5IHsgd2hpdGUtc3BhY2U6IHByZS1saW5lOyB9Ci5uZXdzLWltcG9ydC10YSB7IHdpZHRoOiAx +MDAlOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250OiAxM3B4LzEuNDUgQ29uc29sYXMsIG1v +bm9zcGFjZTsgcGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yLCAj +ODg4KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1tZCwgOHB4KTsgYmFja2dyb3VuZDogdmFyKC0t +YmcsICNmZmYpOyBjb2xvcjogaW5oZXJpdDsgcmVzaXplOiB2ZXJ0aWNhbDsgfQoKQG1lZGlhIHBy +aW50IHsKICAvKiBBcHAtQ2hyb21lIGF1c2JsZW5kZW4sIG51ciBkZW4gQXJ0aWtlbCBhdWZzIEJs +YXR0IChnZXNjb3B0IGF1ZiBib2R5LnByaW50aW5nLAogICAgIGdlc2V0enQgdm9uIFAucHJpbnRB +cnRpY2xlIC0+IHZlcnNlaGVudGxpY2hlcyBTdHJnK1AgYmxlaWJ0IFN0YW5kYXJkdmVyaGFsdGVu +KS4gKi8KICBib2R5LnByaW50aW5nIC50b3BiYXIsIGJvZHkucHJpbnRpbmcgLnJhaWwtbCwgYm9k +eS5wcmludGluZyAucmFpbC1yLAogIGJvZHkucHJpbnRpbmcgLmZlZWQtaGVhZCwgYm9keS5wcmlu +dGluZyAuZmVlZC1zY3JvbGwsIGJvZHkucHJpbnRpbmcgLmN2LWJhciwKICBib2R5LnByaW50aW5n +IC5jdi1mcmFtZSwgYm9keS5wcmludGluZyAudG9hc3QsIGJvZHkucHJpbnRpbmcgLm92ZXJsYXks +CiAgYm9keS5wcmludGluZyBkaWFsb2csIGJvZHkucHJpbnRpbmcgLmNvbGxhYi1vdmVybGF5LCBi +b2R5LnByaW50aW5nICNjb2xsYWItcG9wIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Cgog +IGJvZHkucHJpbnRpbmcsIGJvZHkucHJpbnRpbmcgLmFwcCwgYm9keS5wcmludGluZyAuc2hlbGws +IGJvZHkucHJpbnRpbmcgLmNlbnRlciwKICBib2R5LnByaW50aW5nIC5jb250ZW50LXZpZXcgeyBk +aXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgIG92 +ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsg +Y29sb3I6ICMwMDAgIWltcG9ydGFudDsgfQoKICBib2R5LnByaW50aW5nIC5jdi1hcnRpY2xlIHsg +ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50Owog +ICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsgcGFkZGluZzogMCAhaW1wb3J0YW50OyBt +YXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfQoKICAvKiBEcnVja2ZyZXVuZGxpY2g6IGR1bmts +ZSBUb2tlbnMgLT4gU2Nod2Fyei9XZWlzcywgTGlua3MgYWxzIFRleHQsIFVtYnJ1ZWNoZSBzY2hv +bmVuLiAqLwogIGJvZHkucHJpbnRpbmcgLmN2LWFydGljbGUsIGJvZHkucHJpbnRpbmcgLmFydC1o +ZWFkIGgxLAogIGJvZHkucHJpbnRpbmcgLmFydC1tZXRhLCBib2R5LnByaW50aW5nIC5hcnQtZGF0 +ZSwgYm9keS5wcmludGluZyAuYXJ0LWJvZHkgeyBjb2xvcjogIzAwMCAhaW1wb3J0YW50OyB9CiAg +Ym9keS5wcmludGluZyAuYXJ0LWJvZHkgYSB7IGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IHRleHQt +ZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CiAgYm9keS5wcmludGluZyBmaWd1cmUsIGJvZHkucHJp +bnRpbmcgaW1nLCBib2R5LnByaW50aW5nIHRhYmxlLAogIGJvZHkucHJpbnRpbmcgdHIsIGJvZHku +cHJpbnRpbmcgaDIsIGJvZHkucHJpbnRpbmcgaDMgeyBicmVhay1pbnNpZGU6IGF2b2lkOyBwYWdl +LWJyZWFrLWluc2lkZTogYXZvaWQ7IH0KICBib2R5LnByaW50aW5nIC5wcmludC1mb290IHsgZGlz +cGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDI0cHg7IHBhZGRpbmctdG9wOiA4cHg7CiAgICBib3Jk +ZXItdG9wOiAxcHggc29saWQgIzk5OTsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzU1NTsgfQog +IEBwYWdlIHsgbWFyZ2luOiAxOG1tIDE2bW07IH0KfQoKLyogPT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog +KiAgQkFPLVBPUlRBTCDigJQgZWlnZW5zdMOkbmRpZyByZS1nZXRoZW10ZXIgVm9sbGJpbGQtQmVy +ZWljaCAoIlNwcnVuZyBpbiBkaWUgQkFPIikKICogIEVyYnQgSGVsbC9EdW5rZWwgw7xiZXIgZGll +IEJlc3RhbmRzLVRva2VuczsgLS1iYW8tYnJhbmQgZsOkcmJ0IGRpZSBab25lIHVtLgogKiAgS2F0 +ZWdvcmllLUFremVudCBrb21tdCBkYXRlbmdldHJpZWJlbiBwZXIgSW5saW5lIC0tY2F0IGF1cyBQ +T1JUQUxfQkFPLgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwpib2R5LmJhbyB7IG92ZXJmbG93OiBo +aWRkZW47IH0gICAvKiBIaW50ZXJncnVuZC1TaGVsbCBydWhpZ3N0ZWxsZW4gKi8KCi5iYW8tcm9v +dFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfQouYmFvLXJvb3QgewogIHBvc2l0aW9uOiBmaXhl +ZDsgaW5zZXQ6IDA7IHotaW5kZXg6IDYwOwogIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9u +OiBjb2x1bW47CiAgYmFja2dyb3VuZDogdmFyKC0tYmcpOyBjb2xvcjogdmFyKC0tdGV4dCk7ICAg +LyogZXJidCBQb3J0YWwtQnJhbmQgKyBIZWxsL0R1bmtlbCAxOjEgKi8KICBhbmltYXRpb246IGJh +by1pbiAuMnMgdmFyKC0tZWFzZS1vdXQsIGVhc2UpOwp9CkBrZXlmcmFtZXMgYmFvLWluIHsgZnJv +bSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoLjk5NCk7IH0gdG8geyBvcGFjaXR5OiAx +OyB0cmFuc2Zvcm06IG5vbmU7IH0gfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJl +ZHVjZSkgeyAuYmFvLXJvb3QgeyBhbmltYXRpb246IG5vbmU7IH0gfQoKLyogLS0tLSBLb3BmemVp +bGU6IGlkZW50aXNjaCB6dXIgUG9ydGFsLVRvcGJhciAoaGVsbC9vcGFrLCBCcmFuZCBhbHMgQWt6 +ZW50KSAtLS0tICovCi5iYW8tdG9wIHsKICBmbGV4OiAwIDAgdmFyKC0tYmFyLWgsIDU2cHgpOyBk +aXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE0cHg7CiAgcGFkZGluZzog +MCAxOHB4OwogIGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXItYm90dG9tOiAxcHggc29s +aWQgdmFyKC0tbGluZSk7CiAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyOwp9Ci5iYW8t +ZXhpdCB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDog +N3B4OwogIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXNvZnQpOyBjb2xvcjogdmFyKC0tYnJhbmQp +OwogIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJhbmQpIDMw +JSwgdmFyKC0tbGluZSkpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOyBwYWRkaW5nOiA3 +cHggMTNweDsKICBmb250OiBpbmhlcml0OyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IHZh +cigtLWZzLXNtKTsgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFy +KC0tZHVyLTEsIC4xNXMpIHZhcigtLWVhc2UsIGVhc2UpOwp9Ci5iYW8tZXhpdDpob3ZlciB7IGJh +Y2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYnJhbmQpIDE4JSwgdmFyKC0tYmct +MikpOyB9Ci5iYW8tZXhpdCBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9Ci5iYW8t +dGl0bGUgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBsaW5lLWhlaWdo +dDogMS4xOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDJweCA0cHg7IH0KLmJhby10aXRsZSBi +IHsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGxldHRlci1zcGFjaW5nOiAuMDZlbTsgdGV4dC10 +cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQpOyB9Ci5iYW8tdGl0bGUgc3Bh +biB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtMnhzKTsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNw +YWNpbmc6IC4xMmVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4 +dC1mbnQpOyB9Ci5iYW8tY2F0cyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNnB4OyBtYXJnaW4tbGVm +dDogNnB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmJhby1jYXRqdW1wIHsKICBiYWNrZ3JvdW5kOiB2 +YXIoLS1iZyk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFy +KC0tbGluZSk7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tY2F0LCB2YXIoLS1icmFuZCkp +OwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyBwYWRkaW5nOiA1cHggMTBweDsgZm9udDog +aW5oZXJpdDsgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7IGZvbnQtd2VpZ2h0OiA2MDA7IGN1cnNv +cjogcG9pbnRlcjsKfQouYmFvLWNhdGp1bXA6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1o +b3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby10b3AtcmlnaHQgeyBtYXJnaW4tbGVmdDog +YXV0bzsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KCi8q +IC0tLS0gS29wZi1NZW7DvHM6IHdpZSAucGlsbC1idG4gLS0tLSAqLwouYmFvLW1lbnUgeyBwb3Np +dGlvbjogcmVsYXRpdmU7IH0KLmJhby1tZW51LWJ0biB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7 +IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OwogIGJhY2tncm91bmQ6IG5vbmU7IGNvbG9y +OiB2YXIoLS10ZXh0LWRpbSk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRl +ci1yYWRpdXM6IHZhcigtLXItbWQpOwogIHBhZGRpbmc6IDdweCAxMnB4OyBmb250OiBpbmhlcml0 +OyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWlnaHQ6IDYwMDsgY3Vyc29yOiBwb2lu +dGVyOwp9Ci5iYW8tbWVudS1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBj +b2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1tZW51LWJ0biBzdmcgeyB3aWR0aDogMTNweDsgaGVp +Z2h0OiAxM3B4OyBvcGFjaXR5OiAuNzU7IH0KLmJhby1tZW51LXBvcCB7CiAgcG9zaXRpb246IGFi +c29sdXRlOyByaWdodDogMDsgdG9wOiBjYWxjKDEwMCUgKyA2cHgpOyB6LWluZGV4OiA1OwogIG1p +bi13aWR0aDogMjUwcHg7IG1heC1oZWlnaHQ6IDcwdmg7IG92ZXJmbG93LXk6IGF1dG87CiAgYmFj +a2dyb3VuZDogdmFyKC0tbWF0LXBvcCwgdmFyKC0tYmctMikpOyBjb2xvcjogdmFyKC0tdGV4dCk7 +CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXIt +bGcpOyBib3gtc2hhZG93OiB2YXIoLS1lbGV2LTIpOwogIHBhZGRpbmc6IDZweDsKfQouYmFvLW1l +bnUtcG9wLndpZGUgeyBtaW4td2lkdGg6IDMyMHB4OyB9Ci5iYW8tbWVudS1wb3BbaGlkZGVuXSB7 +IGRpc3BsYXk6IG5vbmU7IH0KLmJhby1tZW51LWdycCB7IHBhZGRpbmc6IDhweCAxMHB4IDRweDsg +Zm9udC1zaXplOiB2YXIoLS1mcy0yeHMpOyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXItc3BhY2lu +ZzogLjA2ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQt +Zm50KTsgfQouYmFvLW1lbnUtaXRlbSB7CiAgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyB0 +ZXh0LWFsaWduOiBsZWZ0OyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IDA7CiAgYm9yZGVyLXJh +ZGl1czogdmFyKC0tci1zbSk7IHBhZGRpbmc6IDhweCAxMHB4OyBmb250OiBpbmhlcml0OyBmb250 +LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQpOyBjdXJzb3I6IHBvaW50ZXI7 +Cn0KLmJhby1tZW51LWl0ZW0gc21hbGwgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiB2YXIo +LS1mcy0yeHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBtYXJnaW4tdG9wOiAxcHg7IH0KLmJh +by1tZW51LWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3YpOyB9CgovKiAtLS0t +IEJvZHkgKERhc2hib2FyZCAvIFdvcmtzcGFjZSkgLS0tLSAqLwouYmFvLWJvZHkgeyBmbGV4OiAx +OyBtaW4taGVpZ2h0OiAwOyBvdmVyZmxvdy15OiBhdXRvOyB9CgovKiAtLS0tIERhc2hib2FyZCAt +LS0tICovCi5iYW8tZGFzaCB7IG1heC13aWR0aDogMTUwMHB4OyBtYXJnaW46IDAgYXV0bzsgcGFk +ZGluZzogMjJweCAyMnB4IDYwcHg7IH0KLmJhby1jYXRzZWMgeyBtYXJnaW4tYm90dG9tOiAyNnB4 +OyB9Ci5iYW8tY2F0aGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdh +cDogOXB4OyBtYXJnaW46IDAgMCAxMnB4OwogIGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBmb250 +LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1jYXRkb3QgeyB3aWR0aDog +MTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJhY2tncm91bmQ6IHZhcigt +LWNhdCwgdmFyKC0tYnJhbmQpKTsgZmxleDogMCAwIGF1dG87IH0KLmJhby1ncmlkIHsgZGlzcGxh +eTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgo +MjEwcHgsIDFmcikpOyBnYXA6IDE0cHg7IH0KLmJhby1jYXJkIHsKICBkaXNwbGF5OiBmbGV4OyBm +bGV4LWRpcmVjdGlvbjogY29sdW1uOyBvdmVyZmxvdzogaGlkZGVuOwogIGJhY2tncm91bmQ6IHZh +cigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsKICBib3JkZXItdG9wOiAz +cHggc29saWQgdmFyKC0tY2F0LCB2YXIoLS1icmFuZCkpOwogIGJvcmRlci1yYWRpdXM6IHZhcigt +LXItbGcpOyBib3gtc2hhZG93OiB2YXIoLS1lbGV2LTEpOwogIHRyYW5zaXRpb246IGJveC1zaGFk +b3cgLjE1cyB2YXIoLS1lYXNlLCBlYXNlKSwgdHJhbnNmb3JtIC4xNXMgdmFyKC0tZWFzZSwgZWFz +ZSk7Cn0KLmJhby1jYXJkOmhvdmVyIHsgYm94LXNoYWRvdzogdmFyKC0tZWxldi0yKTsgdHJhbnNm +b3JtOiB0cmFuc2xhdGVZKC0ycHgpOyB9Ci5iYW8tY2FyZC1oZWFkIHsKICBwYWRkaW5nOiAxMnB4 +IDE0cHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxp +bmUpOwogIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY2F0LCB2YXIoLS1i +cmFuZCkpIDklLCB2YXIoLS1iZy0yKSk7Cn0KLmJhby1jYXJkLWhlYWQgc3Ryb25nIHsgZm9udC1z +aXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQpOyB9Ci5iYW8tY2FyZC1oZWFk +OmhvdmVyIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jYXQsIHZhcigtLWJyYW5kKSk7IH0KLmJhby1j +YXJkLWRvY3MgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBwYWRkaW5n +OiA3cHg7IGdhcDogMnB4OyB9Ci5iYW8tY2FyZC1kb2MgewogIHRleHQtYWxpZ246IGxlZnQ7IGJh +Y2tncm91bmQ6IG5vbmU7IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1zbSk7CiAg +cGFkZGluZzogN3B4IDlweDsgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7 +IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsKfQouYmFvLWNhcmQtZG9j +OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92KTsgY29sb3I6IHZhcigtLXRleHQpOyB9 +Ci5iYW8tY2FyZC1kb2MuaXMtZGVmYXVsdCB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC13ZWln +aHQ6IDYwMDsgfQouYmFvLWNhcmQtZG9jLmlzLWRlZmF1bHQ6OmJlZm9yZSB7IGNvbnRlbnQ6ICIi +OyB9CgovKiAtLS0tIFdvcmtzcGFjZSAtLS0tICovCi5iYW8td3MgeyBkaXNwbGF5OiBncmlkOyBn +cmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2NHB4IDFmcjsgaGVpZ2h0OiAxMDAlOyBtaW4taGVpZ2h0 +OiAwOyB9Ci5iYW8td3MtbmF2IHsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tbGluZSk7 +IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyBvdmVyZmxvdy15OiBhdXRvOwogIGRpc3BsYXk6IGZs +ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHBhZGRpbmc6IDEycHggMTBweCAyNHB4OyB9Ci5i +YW8td3MtYmFjayB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7 +IGdhcDogNnB4OyBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogIGJhY2tncm91bmQ6IG5vbmU7IGJv +cmRlcjogMDsgcGFkZGluZzogNXB4IDZweDsgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiB2YXIo +LS1mcy1zbSk7CiAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgY3Vyc29yOiBwb2ludGVyOyBib3Jk +ZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsKfQouYmFvLXdzLWJhY2s6aG92ZXIgeyBiYWNrZ3JvdW5k +OiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby13cy1iYWNrIHN2ZyB7 +IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IH0KLmJhby13cy10aXRsZSB7IG1hcmdpbjogMTBw +eCA2cHggMTJweDsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGZvbnQtd2VpZ2h0OiA3MDA7CiAg +Y29sb3I6IHZhcigtLXRleHQpOyBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWNhdCwgdmFy +KC0tYnJhbmQpKTsgcGFkZGluZy1sZWZ0OiA5cHg7IH0KLmJhby1kb2NsaXN0IHsgZGlzcGxheTog +ZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IH0KLmJhby1kb2NsaXN0LWdy +cCB7IHBhZGRpbmc6IDEwcHggOHB4IDNweDsgZm9udC1zaXplOiB2YXIoLS1mcy0yeHMpOyBmb250 +LXdlaWdodDogNzAwOyBsZXR0ZXItc3BhY2luZzogLjA2ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVw +cGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQtZm50KTsgfQouYmFvLWRvYyB7CiAgZGlzcGxheTog +ZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA5cHg7IHRleHQtYWxpZ246IGxlZnQ7CiAg +YmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXNtKTsg +cGFkZGluZzogOHB4IDEwcHg7CiAgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiB2YXIoLS1mcy1z +bSk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsKfQouYmFvLWRvYyBz +bWFsbCB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IHZhcigtLWZzLTJ4cyk7IGNvbG9yOiB2 +YXIoLS10ZXh0LWZudCk7IGZvbnQtd2VpZ2h0OiA0MDA7IH0KLmJhby1kb2M6aG92ZXIgeyBiYWNr +Z3JvdW5kOiB2YXIoLS1iZy1ob3YpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1kb2MuYWN0 +aXZlIHsgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jYXQsIHZhcigtLWJy +YW5kKSkgMTQlLCB2YXIoLS1iZy0yKSk7CiAgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXdlaWdo +dDogNjAwOyBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHZhcigtLWNhdCwgdmFyKC0tYnJhbmQp +KTsgfQouYmFvLWRvYy1pYyB7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGNv +bG9yOiB2YXIoLS1jYXQsIHZhcigtLWJyYW5kKSk7IGZsZXg6IDAgMCBhdXRvOyB9Ci5iYW8tZG9j +LWljIHN2ZyB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH0KCi5iYW8td3MtbWFpbiB7IG1p +bi13aWR0aDogMDsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3cteTogYXV0bzsgZGlzcGxheTogZmxl +eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IH0KCi8q +IFBERi1BbnplaWdlICovCi5iYW8tZG9jYmFyIHsgZmxleDogMCAwIGF1dG87IGRpc3BsYXk6IGZs +ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgcGFkZGluZzogOXB4IDE2cHg7CiAg +YmFja2dyb3VuZDogdmFyKC0tYmctMik7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1s +aW5lKTsgfQouYmFvLWRvY2Jhci10IHsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiB2YXIo +LS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQouYmFvLWRvY2Jhci1wYXRoIHsgZm9udC1z +aXplOiB2YXIoLS1mcy0yeHMpOyBjb2xvcjogdmFyKC0tdGV4dC1mbnQpOyBvdmVyZmxvdzogaGlk +ZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouYmFv +LWRvY2Jhci1vcGVuIHsgbWFyZ2luLWxlZnQ6IGF1dG87IGZsZXg6IDAgMCBhdXRvOyB9Ci5iYW8t +cGRmIHsgZmxleDogMTsgd2lkdGg6IDEwMCU7IGJvcmRlcjogMDsgYmFja2dyb3VuZDogIzUyNTY1 +OTsgbWluLWhlaWdodDogMDsgfQoKLyogQXJ0aWtlbC1BbnplaWdlIChuYXRpdjsgbnV0enQgY3Yt +YXJ0aWNsZS1UeXBvKSAqLwouYmFvLWFydGljbGUgeyBtYXgtd2lkdGg6IHZhcigtLXJlYWQsIDc0 +Y2gpOyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMzBweCAyOHB4IDY0cHg7IHdpZHRoOiAxMDAl +OyB9Ci5iYW8tYXJ0aWNsZSBoMSB7IG1hcmdpbjogMCAwIDE4cHg7IGZvbnQtc2l6ZTogdmFyKC0t +ZnMteGwpOyBsaW5lLWhlaWdodDogMS4yOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KLmJhby1hcnQt +Y3R4IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2 +YXIoLS10ZXh0LWZudCk7IG1hcmdpbi1sZWZ0OiA4cHg7IH0KLmJhby1hcnQtYm9keSB7IGZvbnQt +c2l6ZTogdmFyKC0tZnMtYmFzZSk7IGxpbmUtaGVpZ2h0OiAxLjc7IGNvbG9yOiB2YXIoLS10ZXh0 +KTsgfQouYmFvLWFydC1taXNzaW5nIHsgcGFkZGluZzogMThweDsgYm9yZGVyOiAxcHggZGFzaGVk +IHZhcigtLWxpbmUtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItbWQpOwogIGNvbG9yOiB2YXIo +LS10ZXh0LWRpbSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLTIpOyB9CgovKiBBcnRpa2VsLUluaGFs +dHMtVHlwb2dyYWZpZSAoZWlnZW5lLCBkYSAuY3YtYXJ0aWNsZSBkaXNwbGF5Om5vbmUgdG9nZ2Vs +dCkgKi8KLmJhby1hcnQtYm9keSA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH0KLmJh +by1hcnQtYm9keSBwIHsgbWFyZ2luOiAwIDAgLjllbTsgfQouYmFvLWFydC1ib2R5IGgyIHsgZm9u +dC1zaXplOiB2YXIoLS1mcy1sZyk7IG1hcmdpbjogMS40ZW0gMCAuNGVtOyBsaW5lLWhlaWdodDog +MS4yNTsgfQouYmFvLWFydC1ib2R5IGgzIHsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IG1hcmdp +bjogMS4yZW0gMCAuMzVlbTsgbGluZS1oZWlnaHQ6IDEuMzsgfQouYmFvLWFydC1ib2R5IGg0IHsg +Zm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgbWFyZ2luOiAxLjFlbSAwIC4zZW07IGZvbnQtd2Vp +Z2h0OiA3MDA7IH0KLmJhby1hcnQtYm9keSB1bCwgLmJhby1hcnQtYm9keSBvbCB7IHBhZGRpbmct +bGVmdDogMS40ZW07IG1hcmdpbjogMCAwIC45ZW07IH0KLmJhby1hcnQtYm9keSBsaSB7IG1hcmdp +bjogLjJlbSAwOyB9Ci5iYW8tYXJ0LWJvZHkgYSB7IGNvbG9yOiB2YXIoLS1icmFuZCk7IH0KLmJh +by1hcnQtYm9keSBibG9ja3F1b3RlIHsgbWFyZ2luOiAwIDAgLjllbTsgcGFkZGluZzogNnB4IDE0 +cHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tbGluZS0yKTsgY29sb3I6IHZhcigtLXRl +eHQtZGltKTsgfQouYmFvLWFydC1ib2R5IGhyIHsgYm9yZGVyOiAwOyBib3JkZXItdG9wOiAxcHgg +c29saWQgdmFyKC0tbGluZSk7IG1hcmdpbjogMS40ZW0gMDsgfQouYmFvLWFydC1ib2R5IGZpZ3Vy +ZSB7IG1hcmdpbjogMWVtIDA7IH0KLmJhby1hcnQtYm9keSBmaWd1cmUuZW1iZWQuaW1nIHsgdGV4 +dC1hbGlnbjogY2VudGVyOyB9Ci5iYW8tYXJ0LWJvZHkgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBo +ZWlnaHQ6IGF1dG87IGJvcmRlci1yYWRpdXM6IHZhcigtLXItc20pOyB9Ci5iYW8tYXJ0LWJvZHkg +dGFibGUgeyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB3aWR0aDogMTAwJTsgbWFyZ2luOiAw +IDAgMWVtOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgfQouYmFvLWFydC1ib2R5IHRoLCAuYmFv +LWFydC1ib2R5IHRkIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS0yKTsgcGFkZGluZzog +NnB4IDlweDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsgfQouYmFvLWFy +dC1ib2R5IHRoIHsgYmFja2dyb3VuZDogdmFyKC0tYmctMyk7IGZvbnQtd2VpZ2h0OiA3MDA7IH0K +Ci8qIFN0YW5kYXJkLcOcYmVyc2ljaHQ6IEhhdXB0IChFcmtsw6RydW5nKSArIHJlY2h0ZSBTcGFs +dGUgKEdydW5kc8OkdHplICsgQ2hlY2tsaXN0ZSkgKi8KLmJhby1kYXNoMyB7IGRpc3BsYXk6IGdy +aWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsMS40NWZyKSBtaW5tYXgoMzMwcHgs +MWZyKTsgZ2FwOiAxOHB4OwogIGFsaWduLWl0ZW1zOiBzdGFydDsgcGFkZGluZzogMjJweCBjbGFt +cCgxNnB4LDIuNXZ3LDMycHgpIDQ4cHg7IGhlaWdodDogMTAwJTsgYm94LXNpemluZzogYm9yZGVy +LWJveDsgb3ZlcmZsb3c6IGF1dG87IH0KLmJhby1kYXNoLW1haW4geyBtaW4td2lkdGg6IDA7IGJh +Y2tncm91bmQ6IHZhcigtLWJnLTIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsKICBi +b3JkZXItcmFkaXVzOiB2YXIoLS1yLWxnKTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsg +cGFkZGluZzogOHB4IGNsYW1wKDE0cHgsMnZ3LDI2cHgpIDI0cHg7IH0KLmJhby1kYXNoLW1haW4g +LmJhby1hcnRpY2xlIHsgbWF4LXdpZHRoOiBub25lOyBwYWRkaW5nOiAxOHB4IDAgMDsgfQouYmFv +LWRhc2gtc2lkZSB7IG1pbi13aWR0aDogMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246 +IGNvbHVtbjsgZ2FwOiAxOHB4OyB9Ci5iYW8tZGFzaC1jYXJkIHsgYmFja2dyb3VuZDogdmFyKC0t +YmctMik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOiB2YXIo +LS1yLWxnKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyBvdmVyZmxvdzogaGlkZGVu +OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9Ci5iYW8tZGFzaC1jYXJk +LWggeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgcGFkZGlu +ZzogMTBweCAxNHB4OwogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYmFj +a2dyb3VuZDogdmFyKC0tYmctMyk7CiAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2Vp +Z2h0OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQouYmFvLWRhc2gtY2FyZC1oIC5iYW8tZG9j +LWljIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IH0KLmJhby1kYXNoLW9wZW4geyBt +YXJnaW4tbGVmdDogYXV0bzsgZmxleDogMCAwIGF1dG87IH0KLmJhby1kYXNoLWNhcmQtYiB7IHBh +ZGRpbmc6IDEycHggMTRweDsgb3ZlcmZsb3c6IGF1dG87IH0KLmJhby1kYXNoLWNhcmQtYiAuYmFv +LWFydC1ib2R5IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGxpbmUtaGVpZ2h0OiAxLjU1OyB9 +Ci5iYW8tZGFzaC1jYXJkLXBkZiB7IGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiA0ODBweDsg +fQouYmFvLWRhc2gtcGRmIHsgZmxleDogMTsgd2lkdGg6IDEwMCU7IGJvcmRlcjogMDsgYmFja2dy +b3VuZDogIzUyNTY1OTsgbWluLWhlaWdodDogNDYwcHg7IH0KCkBtZWRpYSAobWF4LXdpZHRoOiAx +MTAwcHgpIHsgLmJhby1kYXNoMyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IC5iYW8t +ZGFzaC1jYXJkLXBkZiB7IG1pbi1oZWlnaHQ6IDcwdmg7IH0gfQoKQG1lZGlhIChtYXgtd2lkdGg6 +IDc2MHB4KSB7CiAgLmJhby13cyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9CiAgLmJh +by13cy1uYXYgeyBib3JkZXItcmlnaHQ6IDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIo +LS1saW5lKTsgbWF4LWhlaWdodDogMzh2aDsgfQogIC5iYW8tY2F0cyB7IGRpc3BsYXk6IG5vbmU7 +IH0KfQoK +### FILE: assets/img/polizeistern.png | 66191 +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 +Z6wAAAAASUVORK5CYII= +### FILE: assets/img/portal-readme.png | 65112 +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 +S3vbk1VgAAAAAElFTkSuQmCC +### FILE: assets/img/portal.png | 17193 +iVBORw0KGgoAAAANSUhEUgAAAL4AAABJCAYAAACD45w8AAAGFWlUWHRYTUw6Y29tLmFkb2JlLnht +cAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi +Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUg +NS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy +LXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1s +bnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczpwaG90b3No +b3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICB4bWxuczp0aWZmPSJo +dHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFk +b2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOmV4aWZFWD0iaHR0cDovL2NpcGEuanAvZXhpZi8x +LjAvIgogICAgeG1sbnM6YXV4PSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wL2F1eC8iCiAg +IGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgZXhpZjpEYXRlVGltZU9yaWdpbmFsPSIyMDE4LTEyLTI5 +VDEwOjU3OjIzIgogICBleGlmOkV4aWZWZXJzaW9uPSIwMjIxIgogICBleGlmOkZsYXNocGl4VmVy +c2lvbj0iMDEwMCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjIxMDAiCiAgIGV4aWY6UGl4ZWxZ +RGltZW5zaW9uPSI4MDciCiAgIGV4aWY6U2NlbmVDYXB0dXJlVHlwZT0iMCIKICAgcGhvdG9zaG9w +OkRhdGVDcmVhdGVkPSIyMDE4LTEyLTI5VDEwOjU3OjIzIgogICB0aWZmOkNvbXByZXNzaW9uPSI2 +IgogICB0aWZmOkltYWdlTGVuZ3RoPSI4MDciCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMjEwMCIKICAg +dGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIKICAgdGlmZjpYUmVzb2x1dGlvbj0iNzIvMSIKICAgdGlm +ZjpZQ2JDclBvc2l0aW9uaW5nPSIxIgogICB0aWZmOllSZXNvbHV0aW9uPSI3Mi8xIgogICB4bXA6 +Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBNaXggMi44LjEiCiAgIGV4aWZFWDpMZW5zTW9k +ZWw9IiIKICAgYXV4OkxlbnM9IiI+CiAgIDxleGlmOkNvbXBvbmVudHNDb25maWd1cmF0aW9uPgog +ICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaT4xPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4yPC9yZGY6 +bGk+CiAgICAgPHJkZjpsaT4zPC9yZGY6bGk+CiAgICAgPHJkZjpsaT4wPC9yZGY6bGk+CiAgICA8 +L3JkZjpTZXE+CiAgIDwvZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgPHRpZmY6Qml0 +c1BlclNhbXBsZT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGk+ODwvcmRmOmxpPgogICAgPC9y +ZGY6U2VxPgogICA8L3RpZmY6Qml0c1BlclNhbXBsZT4KICAgPHRpZmY6WUNiQ3JTdWJTYW1wbGlu +Zz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGk+MjwvcmRmOmxpPgogICAgIDxyZGY6bGk+Mjwv +cmRmOmxpPgogICAgPC9yZGY6U2VxPgogICA8L3RpZmY6WUNiQ3JTdWJTYW1wbGluZz4KICA8L3Jk +ZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIi +Pz7+3PLrAAABhGlDQ1BzUkdCIElFQzYxOTY2LTIuMQAAKJF1kc0rRFEYh5+ZIfLRKBYWFjdhNTRD +iY0yk4aSNEb52sxc86HmztzuvdJkq2ynKLHxteAvYKuslSJSsrGxJjZM13tnpkbinM77Pv3Oed/O ++R1wRzOqZtb4QctaRiQcVObmF5S6Zzy00UIfnphq6qPT05P8Oz7ucDn5ptfp9f+5P0fjcsJUwVUv +PKLqhiU8Ljy5ZukObwu3qenYsvCpsM+QCwrfOnq8zC8Op8r85bARjYTA3SKspH5w/AeraUMTlpfT +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 +### FILE: assets/js/admin/historie.js | 7410 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vaGlzdG9yaWUuanMgIChQ +aGFzZSA1KQogICBBZG1pbi1XZXJremV1ZzogVmVyc2lvbnMtSGlzdG9yaWUgZGVyIHZlcsO2ZmZl +bnRsaWNodGVuIERhdGVuZGF0ZWllbgogICAoZGF0YS1jb250ZW50LmpzIC8gZGF0YS1uYXYuanMg +LyBBcnRpa2VsLUhUTUwpLiBaZWlndCBqZSBEYXRlaSBlaW5lCiAgIFplaXRsZWlzdGUgZGVyIFNu +YXBzaG90cywgZWluZW4gRGlmZiAod2FzIGVpbmUgV2llZGVyaGVyc3RlbGx1bmcgw6RuZGVybgog +ICB3w7xyZGUpIHVuZCBzdGVsbHQgZWluZW4gZnLDvGhlcmVuIFN0YW5kIHdpZWRlciBoZXIuCgog +ICBTZXJ2ZXI6IEdFVCAvYXBpL2hpc3RvcnlbP3RhcmdldD1dIMK3IEdFVCAvYXBpL2hpc3Rvcnkv +PGlkPiDCtwogICAgICAgICAgIFBPU1QgL2FwaS9oaXN0b3J5L3Jlc3RvcmUge2lkfSAgIOKAlCBh +bGxlIGFkbWluLW9ubHkgKDQwMyBzb25zdCkuCiAgIE51ciBpbSBQZmxlZ2UtTW9kdXMgYWxzIEFk +bWluIHNpbm52b2xsOyBMZXNlciBsYWRlbiBkYXMgbmllIGF1ZnJ1ZmJhci4KICAgPT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCAk +ID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNjYXBlSHRtbDsKCiAgLy8gU3ByZWNoZW5kZSBC +ZXplaWNobnVuZyBmw7xyIGVpbiBQdWJsaXNoLVppZWwuCiAgZnVuY3Rpb24gdGFyZ2V0TGFiZWwo +dCkgewogICAgaWYgKHQgPT09ICJhc3NldHMvanMvZGF0YS1jb250ZW50LmpzIikgcmV0dXJuICJJ +bmhhbHRlIChNZWxkdW5nZW4gwrcgQXJ0aWtlbC1EYXRlbiDCtyBQYW5lbHMgwrcgTGFnZSkiOwog +ICAgaWYgKHQgPT09ICJhc3NldHMvanMvZGF0YS1uYXYuanMiKSByZXR1cm4gIk5hdmlnYXRpb24i +OwogICAgdmFyIG0gPSAvKFteL10rKVwuaHRtbCQvLmV4ZWModCB8fCAiIik7CiAgICBpZiAobSkg +cmV0dXJuICJBcnRpa2VsOiAiICsgbVsxXTsKICAgIHJldHVybiB0IHx8ICIodW5iZWthbm50KSI7 +CiAgfQogIGZ1bmN0aW9uIGFjdExhYmVsKGEpIHsgcmV0dXJuIGEgPT09ICJyZXN0b3JlIiA/ICJX +aWVkZXJoZXJzdGVsbHVuZyIgOiAiVmVyw7ZmZmVudGxpY2h0IjsgfQoKICBmdW5jdGlvbiBmbXRU +cyhzKSB7CiAgICBpZiAoIXMpIHJldHVybiAiIjsKICAgIHZhciBkID0gbmV3IERhdGUoU3RyaW5n +KHMpLnJlcGxhY2UoIiAiLCAiVCIpKTsKICAgIGlmIChpc05hTihkLmdldFRpbWUoKSkpIHJldHVy +biBTdHJpbmcocyk7CiAgICByZXR1cm4gZC50b0xvY2FsZVN0cmluZygiZGUtREUiLCB7IGRheTog +IjItZGlnaXQiLCBtb250aDogIjItZGlnaXQiLCB5ZWFyOiAibnVtZXJpYyIsIGhvdXI6ICIyLWRp +Z2l0IiwgbWludXRlOiAiMi1kaWdpdCIgfSk7CiAgfQoKICBQLm9wZW5IaXN0b3J5ID0gZnVuY3Rp +b24gKCkgewogICAgaWYgKFAucm9sZSAhPT0gImFkbWluIikgeyBQLnRvYXN0KCJWZXJzaW9ucy1I +aXN0b3JpZSBpc3QgQWRtaW5zIHZvcmJlaGFsdGVuLiIpOyByZXR1cm47IH0KICAgIFAubW9kYWwo +ewogICAgICB0aXRsZTogIlZlcnNpb25lbiAmIFdpZWRlcmhlcnN0ZWxsZW4iLCBpY29uOiAiY2xv +Y2siLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkgewogICAgICAgIGhv +c3QuY2xhc3NMaXN0LmFkZCgiaGlzdC1ib2R5Iik7CiAgICAgICAgdmFyIGdyaWQgPSBlbCgiZGl2 +IiwgeyBjbGFzczogImhpc3QtZ3JpZCIgfSk7CiAgICAgICAgdmFyIGxpc3QgPSBlbCgiZGl2Iiwg +eyBjbGFzczogImhpc3QtbGlzdCIsIGlkOiAiaGlzdC1saXN0IiB9LCBbZWwoImRpdiIsIHsgY2xh +c3M6ICJtdXRlZCIsIHRleHQ6ICJMYWRlIEhpc3Rvcmll4oCmIiB9KV0pOwogICAgICAgIHZhciBw +YW5lID0gZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LXBhbmUiLCBpZDogImhpc3QtcGFuZSIgfSwg +W2VsKCJkaXYiLCB7IGNsYXNzOiAiaGlzdC1wYW5lLWVtcHR5IG11dGVkIiwgdGV4dDogIkxpbmtz +IGVpbmVuIFN0YW5kIHfDpGhsZW4sIHVtIGRlbiBVbnRlcnNjaGllZCB6dW0gYWt0dWVsbGVuIFN0 +YW5kIHp1IHNlaGVuLiIgfSldKTsKICAgICAgICBncmlkLmFwcGVuZENoaWxkKGxpc3QpOyBncmlk +LmFwcGVuZENoaWxkKHBhbmUpOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoZ3JpZCk7CiAgICAg +ICAgaG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImhpc3QtZm9vdC1oaW50IG11 +dGVkIiwgaWQ6ICJoaXN0LWZvb3QiIH0pKTsKCiAgICAgICAgZmV0Y2goIi9hcGkvaGlzdG9yeSIp +LnRoZW4oZnVuY3Rpb24gKHIpIHsKICAgICAgICAgIGlmIChyLnN0YXR1cyA9PT0gNDAzKSB0aHJv +dyBuZXcgRXJyb3IoIjQwMyIpOwogICAgICAgICAgcmV0dXJuIHIuanNvbigpOwogICAgICAgIH0p +LnRoZW4oZnVuY3Rpb24gKGopIHsKICAgICAgICAgIGlmICghaiB8fCAhai5vaykgdGhyb3cgbmV3 +IEVycm9yKCJsb2FkIik7CiAgICAgICAgICByZW5kZXJMaXN0KGouaXRlbXMgfHwgW10sIGoubGlt +aXRzIHx8IHt9KTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSkgewogICAgICAgICAgbGlz +dC5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgIGxpc3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg +Y2xhc3M6ICJtdXRlZCIsIHRleHQ6IGUubWVzc2FnZSA9PT0gIjQwMyIgPyAiS2VpbmUgQWRtaW4t +UmVjaHRlLiIgOiAiSGlzdG9yaWUgbmljaHQgbGFkYmFyLiIgfSkpOwogICAgICAgIH0pOwogICAg +ICB9LAogICAgICBhY3Rpb25zOiBbeyBsYWJlbDogIlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3Qi +IH1dCiAgICB9KTsKICB9OwoKICBmdW5jdGlvbiByZW5kZXJMaXN0KGl0ZW1zLCBsaW1pdHMpIHsK +ICAgIHZhciBsaXN0ID0gJCgiI2hpc3QtbGlzdCIpOyBpZiAoIWxpc3QpIHJldHVybjsKICAgIGxp +c3QuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIgZm9vdCA9ICQoIiNoaXN0LWZvb3QiKTsKICAgIGlm +IChmb290KSBmb290LnRleHRDb250ZW50ID0gaXRlbXMubGVuZ3RoCiAgICAgID8gKGl0ZW1zLmxl +bmd0aCArICIgU3TDpG5kZSDCtyBBdWZiZXdhaHJ1bmcgIiArIChsaW1pdHMucHJ1bmVEYXlzIHx8 +IDkwKSArICIgVGFnZSAvIG1heC4gIiArIChsaW1pdHMubWF4UGVyVGFyZ2V0IHx8IDUwKSArICIg +amUgRGF0ZWkiKQogICAgICA6ICIiOwogICAgaWYgKCFpdGVtcy5sZW5ndGgpIHsgbGlzdC5hcHBl +bmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogIm11dGVkIiwgdGV4dDogIk5vY2gga2VpbmUgVmVy +c2lvbmVuIHZvcmhhbmRlbiDigJQgc2llIGVudHN0ZWhlbiBhYiBkZW0gbsOkY2hzdGVuIFZlcsO2 +ZmZlbnRsaWNoZW4uIiB9KSk7IHJldHVybjsgfQoKICAgIC8vIG5hY2ggWmllbCBncnVwcGllcmVu +LCBSZWloZW5mb2xnZSBuYWNoIGrDvG5nc3RlbSBFaW50cmFnIGplIFppZWwKICAgIHZhciBncm91 +cHMgPSB7fSwgb3JkZXIgPSBbXTsKICAgIGl0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAg +ICAgdmFyIHQgPSBlLnRhcmdldCB8fCAiKHVuYmVrYW5udCkiOwogICAgICBpZiAoIWdyb3Vwc1t0 +XSkgeyBncm91cHNbdF0gPSBbXTsgb3JkZXIucHVzaCh0KTsgfQogICAgICBncm91cHNbdF0ucHVz +aChlKTsKICAgIH0pOwogICAgb3JkZXIuZm9yRWFjaChmdW5jdGlvbiAodCkgewogICAgICBsaXN0 +LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiaGlzdC1ncnAtaCIsIHRleHQ6IHRhcmdl +dExhYmVsKHQpIH0pKTsKICAgICAgZ3JvdXBzW3RdLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAg +ICAgICB2YXIgcm93ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LWl0ZW0iLCAiZGF0YS1pZCI6 +IGUuaWQgfSwgWwogICAgICAgICAgZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LWl0ZW0tdG9wIiB9 +LCBbCiAgICAgICAgICAgIGVsKCJzcGFuIiwgeyBjbGFzczogImhpc3QtYWN0ICIgKyAoZS5hY3Rp +b24gPT09ICJyZXN0b3JlIiA/ICJyZXN0b3JlIiA6ICJwdWJsaXNoIiksIHRleHQ6IGFjdExhYmVs +KGUuYWN0aW9uKSB9KSwKICAgICAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAiaGlzdC13aGVu +IiwgdGV4dDogZm10VHMoZS50cykgfSkKICAgICAgICAgIF0pLAogICAgICAgICAgZWwoImRpdiIs +IHsgY2xhc3M6ICJoaXN0LWl0ZW0tc3ViIiwgdGV4dDogKGUubmFtZSB8fCBlLnVzZXIgfHwgIiIp +ICsgKGUubm90ZSA/ICIgwrcgIiArIGUubm90ZSA6ICIiKSArICh0eXBlb2YgZS5ieXRlcyA9PT0g +Im51bWJlciIgPyAiIMK3ICIgKyBmbXRCeXRlcyhlLmJ5dGVzKSA6ICIiKSB9KQogICAgICAgIF0p +OwogICAgICAgIHJvdy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgc2Vs +ZWN0RW50cnkoZSwgcm93KTsgfSk7CiAgICAgICAgbGlzdC5hcHBlbmRDaGlsZChyb3cpOwogICAg +ICB9KTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBmbXRCeXRlcyhuKSB7IHJldHVybiBuIDwgMTAy +NCA/IG4gKyAiIEIiIDogbiA8IDEwNDg1NzYgPyAobiAvIDEwMjQpLnRvRml4ZWQoMSkgKyAiIEtC +IiA6IChuIC8gMTA0ODU3NikudG9GaXhlZCgxKSArICIgTUIiOyB9CgogIGZ1bmN0aW9uIHNlbGVj +dEVudHJ5KGUsIHJvdykgewogICAgUC4kJCgiLmhpc3QtaXRlbS5zZWwiKS5mb3JFYWNoKGZ1bmN0 +aW9uICh4KSB7IHguY2xhc3NMaXN0LnJlbW92ZSgic2VsIik7IH0pOwogICAgaWYgKHJvdykgcm93 +LmNsYXNzTGlzdC5hZGQoInNlbCIpOwogICAgdmFyIHBhbmUgPSAkKCIjaGlzdC1wYW5lIik7IGlm +ICghcGFuZSkgcmV0dXJuOwogICAgcGFuZS5pbm5lckhUTUwgPSAiIjsKICAgIHBhbmUuYXBwZW5k +Q2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJoaXN0LXBhbmUtaGVhZCIgfSwgWwogICAgICBlbCgi +ZGl2IiwgeyBjbGFzczogImhpc3QtcGFuZS10IiwgdGV4dDogdGFyZ2V0TGFiZWwoZS50YXJnZXQp +IH0pLAogICAgICBlbCgiZGl2IiwgeyBjbGFzczogImhpc3QtcGFuZS1zIG11dGVkIiwgdGV4dDog +YWN0TGFiZWwoZS5hY3Rpb24pICsgIiDCtyAiICsgZm10VHMoZS50cykgKyAiIMK3ICIgKyAoZS5u +YW1lIHx8IGUudXNlciB8fCAiIikgfSkKICAgIF0pKTsKICAgIHZhciBkaWZmSG9zdCA9IGVsKCJk +aXYiLCB7IGNsYXNzOiAiZGlmZi12aWV3IiwgaWQ6ICJoaXN0LWRpZmYiIH0sIFtlbCgiZGl2Iiwg +eyBjbGFzczogIm11dGVkIiwgdGV4dDogIlZlcmdsZWljaGUgbWl0IGFrdHVlbGxlbSBTdGFuZOKA +piIgfSldKTsKICAgIHBhbmUuYXBwZW5kQ2hpbGQoZGlmZkhvc3QpOwogICAgdmFyIGZvb3QgPSBl +bCgiZGl2IiwgeyBjbGFzczogImhpc3QtcGFuZS1mb290IiB9KTsKICAgIHZhciBidG4gPSBlbCgi +YnV0dG9uIiwgeyBjbGFzczogImJ0biBwcmltYXJ5IiwgaHRtbDogaWMoImRvd25sb2FkIikgKyAi +IERpZXNlbiBTdGFuZCB3aWVkZXJoZXJzdGVsbGVuIiwKICAgICAgb25jbGljazogZnVuY3Rpb24g +KCkgeyBkb1Jlc3RvcmUoZSk7IH0gfSk7CiAgICBmb290LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwg +eyBjbGFzczogIm11dGVkIiwgdGV4dDogIkRlciBha3R1ZWxsZSBTdGFuZCB3aXJkIHZvcmhlciBn +ZXNpY2hlcnQgKHLDvGNrbmVobWJhcikuIiB9KSk7CiAgICBmb290LmFwcGVuZENoaWxkKGVsKCJz +cGFuIiwgeyBzdHlsZTogImZsZXg6MSIgfSkpOwogICAgZm9vdC5hcHBlbmRDaGlsZChidG4pOwog +ICAgcGFuZS5hcHBlbmRDaGlsZChmb290KTsKCiAgICAvLyBTbmFwc2hvdC1JbmhhbHQgKyBha3R1 +ZWxsZW4gRGF0ZWktSW5oYWx0IGhvbGVuLCBkYW5uIERpZmYgcmVuZGVybi4KICAgIHZhciBzbmFw +UCA9IGZldGNoKCIvYXBpL2hpc3RvcnkvIiArIGVuY29kZVVSSUNvbXBvbmVudChlLmlkKSkudGhl +bihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pOwogICAgdmFyIGN1clAgPSBmZXRj +aCgiLyIgKyBlLnRhcmdldCArICI/dD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpLnRoZW4oZnVu +Y3Rpb24gKHIpIHsgcmV0dXJuIHIub2sgPyByLnRleHQoKSA6ICIiOyB9KS5jYXRjaChmdW5jdGlv +biAoKSB7IHJldHVybiAiIjsgfSk7CiAgICBQcm9taXNlLmFsbChbc25hcFAsIGN1clBdKS50aGVu +KGZ1bmN0aW9uIChyZXMpIHsKICAgICAgdmFyIHNuYXAgPSByZXNbMF0sIGN1ciA9IHJlc1sxXTsK +ICAgICAgaWYgKCFzbmFwIHx8ICFzbmFwLm9rKSB7IGRpZmZIb3N0LmlubmVySFRNTCA9ICIiOyBk +aWZmSG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogIm11dGVkIiwgdGV4dDogIlNu +YXBzaG90IG5pY2h0IGxhZGJhci4iIH0pKTsgcmV0dXJuOyB9CiAgICAgIHZhciBkaWZmID0gUC5k +aWZmTGluZXMoY3VyLCBzbmFwLnRleHQpOyAgICAgLy8gY3VycmVudCAtPiBzbmFwc2hvdDogJysn +ID0gd8O8cmRlIHp1csO8Y2trb21tZW4sICctJyA9IGVudGbDpGxsdAogICAgICBpZiAoUC5yZW5k +ZXJEaWZmKSBQLnJlbmRlckRpZmYoZGlmZkhvc3QsIGRpZmYpOwogICAgfSk7CiAgfQoKICBmdW5j +dGlvbiBkb1Jlc3RvcmUoZSkgewogICAgUC5jb25maXJtKCLigJ4iICsgdGFyZ2V0TGFiZWwoZS50 +YXJnZXQpICsgIuKAnCBhdWYgZGVuIFN0YW5kIHZvbSAiICsgZm10VHMoZS50cykgKyAiIHp1csO8 +Y2tzZXR6ZW4/XG5cbkRlciBha3R1ZWxsZSBTdGFuZCB3aXJkIHZvcmhlciBhbHMgbmV1ZXIgVmVy +c2lvbnNwdW5rdCBnZXNpY2hlcnQuIiwgZnVuY3Rpb24gKCkgewogICAgICBQLnRvYXN0KCJTdGVs +bGUgd2llZGVyIGhlcuKApiIpOwogICAgICBmZXRjaCgiL2FwaS9oaXN0b3J5L3Jlc3RvcmUiLCB7 +IG1ldGhvZDogIlBPU1QiLCBoZWFkZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24v +anNvbiIgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBpZDogZS5pZCB9KSB9KQogICAgICAgIC50 +aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkKICAgICAgICAudGhlbihmdW5j +dGlvbiAoaikgewogICAgICAgICAgaWYgKGogJiYgai5vaykgeyBQLnRvYXN0KCJXaWVkZXJoZXJn +ZXN0ZWxsdCDigJQgbGFkZSBuZXVlbiBTdGFuZOKApiIpOyBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp +IHsgbG9jYXRpb24ucmVsb2FkKCk7IH0sIDYwMCk7IH0KICAgICAgICAgIGVsc2UgeyBQLnRvYXN0 +KCJXaWVkZXJoZXJzdGVsbHVuZyBmZWhsZ2VzY2hsYWdlbiIgKyAoaiAmJiBqLmVycm9yID8gIjog +IiArIGouZXJyb3IgOiAiLiIpKTsgfQogICAgICAgIH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9u +ICgpIHsgUC50b2FzdCgiV2llZGVyaGVyc3RlbGx1bmcgZmVobGdlc2NobGFnZW4gKFZlcmJpbmR1 +bmcpLiIpOyB9KTsKICAgIH0sIHsgZGFuZ2VyOiB0cnVlIH0pOwogIH0KCn0pKHdpbmRvdy5QKTsK +### FILE: assets/js/admin/navedit.js | 14187 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vbmF2ZWRpdC5qcyAgKFBo +YXNlIDcpCiAgIEFkbWluLVdlcmt6ZXVnOiBOYXZpZ2F0aW9ucy1TdHJ1a3R1ciBiZWFyYmVpdGVu +IOKAlCBCZXJlaWNoZSB1bmQgRWludHLDpGdlCiAgIHBlciBEcmFnICYgRHJvcCB1bXNvcnRpZXJl +bi92ZXJzY2hpZWJlbiwgcGx1cyBUYXN0ZW4gKOKWsuKWvCAvIGVpbi0vYXVzcsO8Y2tlbiksCiAg +IGFubGVnZW4sIHVtYmVuZW5uZW4sIFppZWwgw6RuZGVybiwgbMO2c2NoZW4uIFZlcsO2ZmZlbnRs +aWNodCB2aWEgUC5wZXJzaXN0TmF2KCkKICAgKGRhdGEtbmF2LmpzKS4gQXJ0aWtlbC1FaW50csOk +Z2Ugw7ZmZm5lbiBkZW4gYmVzdGVoZW5kZW4gQXJ0aWtlbC1EaWFsb2cuCiAgIFplaWd0IEFMTEUg +QmVyZWljaGU7IOKAnnRvcGJhciIgd2lyZCBtYXJraWVydCAoaW0gUG9ydGFsIGRlcnplaXQgbmlj +aHQgaW4gZGVyCiAgIFNlaXRlbmxlaXN0ZSBzaWNodGJhcikgdW5kIGlzdCBhdWYg4oCec2lkZWJh +ciIgdW1zdGVsbGJhci4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ug +c3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNj +YXBlSHRtbDsKICB2YXIgZHJhZyA9IG51bGw7ICAgLy8geyBraW5kOiJpdGVtInwic2VjdGlvbiIs +IHJlZiB9CiAgdmFyIGN1ck1vZGFsID0gbnVsbDsKCiAgZnVuY3Rpb24gY2xvc2UoKSB7IGlmIChj +dXJNb2RhbCkgY3VyTW9kYWwuY2xvc2UoKTsgfQogIGZ1bmN0aW9uIGFmdGVyQ2hhbmdlKCkgeyBQ +LnBlcnNpc3ROYXYoKTsgUC5idWlsZEluZGV4KCk7IFAucmVuZGVyU2lkZWJhcigpOyBidWlsZFRy +ZWUoKTsgfQogIGZ1bmN0aW9uIGNsZWFySW5kKCkgeyBQLiQkKCIubnYtcm93LmRyb3AtYmVmb3Jl +LC5udi1yb3cuZHJvcC1hZnRlciwubnYtc2VjLmRyb3AtYmVmb3JlLC5udi1zZWMuZHJvcC1hZnRl +ciwubnYtZHJvcC5vdmVyIikuZm9yRWFjaChmdW5jdGlvbiAobikgeyBuLmNsYXNzTGlzdC5yZW1v +dmUoImRyb3AtYmVmb3JlIiwgImRyb3AtYWZ0ZXIiLCAib3ZlciIpOyB9KTsgfQoKICBQLm9wZW5O +YXZFZGl0b3IgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoUC5yb2xlICE9PSAiYWRtaW4iKSB7IFAu +dG9hc3QoIk5hdmlnYXRpb25zLUVkaXRvciBpc3QgQWRtaW5zIHZvcmJlaGFsdGVuLiIpOyByZXR1 +cm47IH0KICAgIGN1ck1vZGFsID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiTmF2aWdhdGlvbiBi +ZWFyYmVpdGVuIiwgaWNvbjogIm1lbnUiLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlv +biAoaG9zdCkgewogICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgibnYtdHJlZSIpOwogICAgICAg +IGhvc3QuaWQgPSAibmF2ZWRpdC10cmVlIjsKICAgICAgICBidWlsZFRyZWUoaG9zdCk7ICAgLy8g +SG9zdCBkaXJla3QgZHVyY2hyZWljaGVuOiB6dW0gQm9keS1DYWxsYmFjay1aZWl0cHVua3QgaGFl +bmd0IGRhcyBNb2RhbCBub2NoIG5pY2h0IGltIERPTSAoJCBmaW5kZXQgZXMgc29uc3QgbmljaHQg +LT4gbGVlcikKICAgICAgfSwKICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkgeyBjdXJNb2RhbCA9 +IG51bGw7IH0sCiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQmVyZWljaCIsIGtp +bmQ6ICJnaG9zdCIsIGljb246ICJwbHVzIiwgYWxpZ246ICJsZWZ0Iiwga2VlcE9wZW46IHRydWUs +IG9uQ2xpY2s6IGFkZFNlY3Rpb24gfSwKICAgICAgICB7IGxhYmVsOiAiU2NobGllw59lbiIsIGtp +bmQ6ICJnaG9zdCIgfQogICAgICBdCiAgICB9KTsKICB9OwoKICBmdW5jdGlvbiBidWlsZFRyZWUo +aG9zdCkgewogICAgaG9zdCA9IGhvc3QgfHwgJCgiI25hdmVkaXQtdHJlZSIpOyBpZiAoIWhvc3Qp +IHJldHVybjsKICAgIGhvc3QuaW5uZXJIVE1MID0gIiI7CiAgICBpZiAoIVAuTkFWLnNlY3Rpb25z +Lmxlbmd0aCkgeyBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0 +ZXh0OiAiS2VpbmUgQmVyZWljaGUuIiB9KSk7IHJldHVybjsgfQogICAgUC5OQVYuc2VjdGlvbnMu +Zm9yRWFjaChmdW5jdGlvbiAocywgc2kpIHsgaG9zdC5hcHBlbmRDaGlsZChzZWN0aW9uRWwocywg +c2kpKTsgfSk7CiAgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJlcmVpY2ggKi8KICBmdW5jdGlvbiBzZWN0aW9u +RWwocywgc2kpIHsKICAgIHZhciB3cmFwID0gZWwoImRpdiIsIHsgY2xhc3M6ICJudi1zZWMiIH0p +OwogICAgdmFyIHRvcGJhciA9IHMucGxhY2VtZW50ICYmIHMucGxhY2VtZW50ICE9PSAic2lkZWJh +ciIgJiYgcy5wbGFjZW1lbnQgIT09ICJib3RoIjsKICAgIHZhciBoZWFkID0gZWwoImRpdiIsIHsg +Y2xhc3M6ICJudi1zZWMtaGVhZCIgKyAodG9wYmFyID8gIiBpcy10b3BiYXIiIDogIiIpLCBkcmFn +Z2FibGU6ICJ0cnVlIiB9KTsKICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0Iiwg +ZnVuY3Rpb24gKGUpIHsgZS5zdG9wUHJvcGFnYXRpb24oKTsgZHJhZyA9IHsga2luZDogInNlY3Rp +b24iLCByZWY6IHMgfTsgaGVhZC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpOyB0cnkgeyBlLmRh +dGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgIiIpOyB9IGNhdGNoIChfKSB7fSB9KTsK +ICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsIGZ1bmN0aW9uICgpIHsgZHJhZyA9 +IG51bGw7IGNsZWFySW5kKCk7IGhlYWQuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKTsgfSk7 +CiAgICBoZWFkLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24gKGUpIHsgaWYg +KCFkcmFnIHx8IGRyYWcua2luZCAhPT0gInNlY3Rpb24iKSByZXR1cm47IGUucHJldmVudERlZmF1 +bHQoKTsgdmFyIHIgPSBoZWFkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyB2YXIgYmVmb3JlID0g +KGUuY2xpZW50WSAtIHIudG9wKSA8IHIuaGVpZ2h0IC8gMjsgaGVhZC5jbGFzc0xpc3QudG9nZ2xl +KCJkcm9wLWJlZm9yZSIsIGJlZm9yZSk7IGhlYWQuY2xhc3NMaXN0LnRvZ2dsZSgiZHJvcC1hZnRl +ciIsICFiZWZvcmUpOyB9KTsKICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwg +ZnVuY3Rpb24gKCkgeyBoZWFkLmNsYXNzTGlzdC5yZW1vdmUoImRyb3AtYmVmb3JlIiwgImRyb3At +YWZ0ZXIiKTsgfSk7CiAgICBoZWFkLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAo +ZSkgeyBpZiAoIWRyYWcgfHwgZHJhZy5raW5kICE9PSAic2VjdGlvbiIpIHJldHVybjsgZS5wcmV2 +ZW50RGVmYXVsdCgpOyB2YXIgciA9IGhlYWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IGRyb3BT +ZWN0aW9uKGRyYWcucmVmLCBzLCAoZS5jbGllbnRZIC0gci50b3ApIDwgci5oZWlnaHQgLyAyKTsg +fSk7CgogICAgaGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1ncmlwIiwg +aHRtbDogIuKLruKLriIsIHRpdGxlOiAiWmllaGVuIHp1bSBVbXNvcnRpZXJlbiIgfSkpOwogICAg +aGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1zZWMtdGl0bGUiLCB0ZXh0 +OiBzLnRpdGxlIHx8ICIob2huZSBUaXRlbCkiLCB0aXRsZTogIktsaWNrZW4genVtIFVtYmVuZW5u +ZW4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHZhciB2ID0gcHJvbXB0KCJCZXJlaWNo +cy1OYW1lOiIsIHMudGl0bGUgfHwgIiIpOyBpZiAodiAhPSBudWxsKSB7IHMudGl0bGUgPSB2LnRy +aW0oKSB8fCBzLnRpdGxlOyBhZnRlckNoYW5nZSgpOyB9IH0gfSkpOwogICAgaWYgKHRvcGJhcikg +aGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1iYWRnZSIsIHRleHQ6ICJU +b3BiYXIg4oCUIG5pY2h0IGluIFNlaXRlbmxlaXN0ZSIsIHRpdGxlOiAiUGxhdHppZXJ1bmcgYXVm +IOKAnlNlaXRlbmxlaXN0ZeKAnCBzdGVsbGVuLCB1bSBzaWNodGJhciB6dSBtYWNoZW4iIH0pKTsK +ICAgIHZhciBzZWwgPSBlbCgic2VsZWN0IiwgeyBjbGFzczogIm52LXBsYWNlIiwgdGl0bGU6ICJQ +bGF0emllcnVuZyIsIG9uY2hhbmdlOiBmdW5jdGlvbiAoKSB7IHMucGxhY2VtZW50ID0gdGhpcy52 +YWx1ZTsgYWZ0ZXJDaGFuZ2UoKTsgfSB9KTsKICAgIFtbInNpZGViYXIiLCAiU2VpdGVubGVpc3Rl +Il0sIFsiYm90aCIsICJCZWlkZXMiXSwgWyJ0b3BiYXIiLCAiVG9wYmFyIl0sIFsiYXoiLCAiQeKA +k1oiXV0uZm9yRWFjaChmdW5jdGlvbiAobykgewogICAgICBzZWwuYXBwZW5kQ2hpbGQoZWwoIm9w +dGlvbiIsIHsgdmFsdWU6IG9bMF0sIHRleHQ6IG9bMV0sIHNlbGVjdGVkOiAocy5wbGFjZW1lbnQg +fHwgInNpZGViYXIiKSA9PT0gb1swXSA/ICJzZWxlY3RlZCIgOiBudWxsIH0pKTsKICAgIH0pOwog +ICAgaGVhZC5hcHBlbmRDaGlsZChzZWwpOwogICAgLy8gQmVyZWljaHNmYXJiZSAoZGF0ZW5nZXRy +aWViZW4gLT4gZmFlcmJ0IGRpZSBTZWl0ZW5sZWlzdGVuLVVlYmVyc2NocmlmdCkuIExlZXIgPSBv +aG5lIEZhcmJlLgogICAgaWYgKHMuY29sb3IpIGhlYWQuc3R5bGUuYm9yZGVyTGVmdCA9ICI0cHgg +c29saWQgIiArIHMuY29sb3I7CiAgICB2YXIgY29sID0gZWwoImlucHV0IiwgeyB0eXBlOiAiY29s +b3IiLCBjbGFzczogIm52LWNvbG9yIiwgdGl0bGU6ICJCZXJlaWNoc2ZhcmJlIiwgdmFsdWU6IHMu +Y29sb3IgfHwgIiMxMjNjNjYiIH0pOwogICAgY29sLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs +IGZ1bmN0aW9uICgpIHsgcy5jb2xvciA9IGNvbC52YWx1ZTsgYWZ0ZXJDaGFuZ2UoKTsgfSk7CiAg +ICBoZWFkLmFwcGVuZENoaWxkKGNvbCk7CiAgICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBjbGFz +czogIm52LWFjdHMiIH0pOwogICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pKCLilrIiLCAiQmVyZWlj +aCBob2NoIiwgZnVuY3Rpb24gKCkgeyBtb3ZlU2VjdGlvbihzaSwgLTEpOyB9KSk7CiAgICBhY3Rz +LmFwcGVuZENoaWxkKG1pbmkoIuKWvCIsICJCZXJlaWNoIHJ1bnRlciIsIGZ1bmN0aW9uICgpIHsg +bW92ZVNlY3Rpb24oc2ksIDEpOyB9KSk7CiAgICBpZiAocy5jb2xvcikgYWN0cy5hcHBlbmRDaGls +ZChtaW5pKCLiqK8iLCAiQmVyZWljaHNmYXJiZSBlbnRmZXJuZW4iLCBmdW5jdGlvbiAoKSB7IGRl +bGV0ZSBzLmNvbG9yOyBhZnRlckNoYW5nZSgpOyB9KSk7CiAgICBhY3RzLmFwcGVuZENoaWxkKG1p +bmlJYygicGx1cyIsICJMaW5rIGhpbnp1ZsO8Z2VuIiwgZnVuY3Rpb24gKCkgeyBhZGRMaW5rKHMp +OyB9KSk7CiAgICBhY3RzLmFwcGVuZENoaWxkKG1pbmkoIu+8i+KWviIsICJVbnRlcm1lbsO8IGhp +bnp1ZsO8Z2VuIiwgZnVuY3Rpb24gKCkgeyBhZGRTdWJtZW51KHMpOyB9KSk7CiAgICBhY3RzLmFw +cGVuZENoaWxkKG1pbmlJYygidHJhc2giLCAiQmVyZWljaCBsw7ZzY2hlbiIsIGZ1bmN0aW9uICgp +IHsgZGVsU2VjdGlvbihzKTsgfSkpOwogICAgaGVhZC5hcHBlbmRDaGlsZChhY3RzKTsKICAgIHdy +YXAuYXBwZW5kQ2hpbGQoaGVhZCk7CgogICAgdmFyIGxpc3QgPSBlbCgiZGl2IiwgeyBjbGFzczog +Im52LWxpc3QiIH0pOwogICAgKHMuaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7 +IGxpc3QuYXBwZW5kQ2hpbGQoaXRlbUVsKGl0LCAwKSk7IH0pOwogICAgLy8gRHJvcC1ab25lOiBF +aW50cmFnIGluIGRpZXNlbiBCZXJlaWNoIChhbnMgRW5kZSkgemllaGVuCiAgICB2YXIgem9uZSA9 +IGVsKCJkaXYiLCB7IGNsYXNzOiAibnYtZHJvcCIsIHRleHQ6ICJoaWVyaGVyIHppZWhlbiDihpIg +aW4g4oCeIiArIChzLnRpdGxlIHx8ICIiKSArICLigJwiIH0pOwogICAgem9uZS5hZGRFdmVudExp +c3RlbmVyKCJkcmFnb3ZlciIsIGZ1bmN0aW9uIChlKSB7IGlmICghZHJhZyB8fCBkcmFnLmtpbmQg +IT09ICJpdGVtIikgcmV0dXJuOyBlLnByZXZlbnREZWZhdWx0KCk7IHpvbmUuY2xhc3NMaXN0LmFk +ZCgib3ZlciIpOyB9KTsKICAgIHpvbmUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwgZnVu +Y3Rpb24gKCkgeyB6b25lLmNsYXNzTGlzdC5yZW1vdmUoIm92ZXIiKTsgfSk7CiAgICB6b25lLmFk +ZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAoZSkgeyBpZiAoIWRyYWcgfHwgZHJhZy5r +aW5kICE9PSAiaXRlbSIpIHJldHVybjsgZS5wcmV2ZW50RGVmYXVsdCgpOyB6b25lLmNsYXNzTGlz +dC5yZW1vdmUoIm92ZXIiKTsgdmFyIHNyYyA9IGRyYWcucmVmOyBQLm5hdlJlbW92ZUZyb20oc3Jj +KTsgKHMuaXRlbXMgPSBzLml0ZW1zIHx8IFtdKS5wdXNoKHNyYyk7IGFmdGVyQ2hhbmdlKCk7IH0p +OwogICAgbGlzdC5hcHBlbmRDaGlsZCh6b25lKTsKICAgIHdyYXAuYXBwZW5kQ2hpbGQobGlzdCk7 +CiAgICByZXR1cm4gd3JhcDsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRWludHJhZyAocmVrdXJzaXYpICov +CiAgZnVuY3Rpb24gaXRlbUVsKGl0LCBkZXB0aCkgewogICAgdmFyIG5vZGUgPSBlbCgiZGl2Iiwg +eyBjbGFzczogIm52LW5vZGUiIH0pOwogICAgdmFyIHJvdyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi +bnYtcm93IiwgZHJhZ2dhYmxlOiAidHJ1ZSIsIHN0eWxlOiAibWFyZ2luLWxlZnQ6IiArIChkZXB0 +aCAqIDE2KSArICJweCIgfSk7CiAgICByb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0Iiwg +ZnVuY3Rpb24gKGUpIHsgZS5zdG9wUHJvcGFnYXRpb24oKTsgZHJhZyA9IHsga2luZDogIml0ZW0i +LCByZWY6IGl0IH07IHJvdy5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpOyB0cnkgeyBlLmRhdGFU +cmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIiwgIiIpOyB9IGNhdGNoIChfKSB7fSB9KTsKICAg +IHJvdy5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIiwgZnVuY3Rpb24gKCkgeyBkcmFnID0gbnVs +bDsgY2xlYXJJbmQoKTsgcm93LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7IH0pOwogICAg +cm93LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24gKGUpIHsgaWYgKCFkcmFn +IHx8IGRyYWcua2luZCAhPT0gIml0ZW0iKSByZXR1cm47IGUucHJldmVudERlZmF1bHQoKTsgZS5z +dG9wUHJvcGFnYXRpb24oKTsgdmFyIHIgPSByb3cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IHZh +ciBiZWZvcmUgPSAoZS5jbGllbnRZIC0gci50b3ApIDwgci5oZWlnaHQgLyAyOyByb3cuY2xhc3NM +aXN0LnRvZ2dsZSgiZHJvcC1iZWZvcmUiLCBiZWZvcmUpOyByb3cuY2xhc3NMaXN0LnRvZ2dsZSgi +ZHJvcC1hZnRlciIsICFiZWZvcmUpOyB9KTsKICAgIHJvdy5hZGRFdmVudExpc3RlbmVyKCJkcmFn +bGVhdmUiLCBmdW5jdGlvbiAoKSB7IHJvdy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wLWJlZm9yZSIs +ICJkcm9wLWFmdGVyIik7IH0pOwogICAgcm93LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5j +dGlvbiAoZSkgeyBpZiAoIWRyYWcgfHwgZHJhZy5raW5kICE9PSAiaXRlbSIpIHJldHVybjsgZS5w +cmV2ZW50RGVmYXVsdCgpOyBlLnN0b3BQcm9wYWdhdGlvbigpOyB2YXIgciA9IHJvdy5nZXRCb3Vu +ZGluZ0NsaWVudFJlY3QoKTsgZHJvcEl0ZW0oZHJhZy5yZWYsIGl0LCAoZS5jbGllbnRZIC0gci50 +b3ApIDwgci5oZWlnaHQgLyAyKTsgfSk7CgogICAgcm93LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwg +eyBjbGFzczogIm52LWdyaXAiLCBodG1sOiAi4ouu4ouuIiB9KSk7CiAgICB2YXIgY2Fub24gPSBp +dC5yZWYgPyBQLmZpbmROYXZJdGVtQnlJZChpdC5yZWYpIDogbnVsbDsKICAgIHZhciB0eXAgPSBp +dC5yZWYgPyAicmVmIiA6IGl0LmhlYWRpbmcgPyAiaGVhZGluZyIgOiBpdC5hcnRpY2xlID8gImFy +dGljbGUiIDogaXQuY2hpbGRyZW4gPyAibWVudSIgOiAoaXQudGFyZ2V0ID09PSAiX2JsYW5rIiA/ +ICJleHQiIDogImxpbmsiKTsKICAgIHZhciBpY29uID0geyBoZWFkaW5nOiAiYXoiLCBhcnRpY2xl +OiAiYXJ0aWNsZSIsIG1lbnU6ICJtZW51IiwgZXh0OiAiZXh0IiwgbGluazogImxpbmsiLCByZWY6 +ICJsaW5rIiB9W3R5cF07CiAgICByb3cuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi +bnYtaWMiLCBodG1sOiBpYyhpY29uKSB9KSk7CiAgICB2YXIgbGJsID0gaXQubGFiZWwgfHwgKGl0 +LmFydGljbGUgJiYgaXQuYXJ0aWNsZS50aXRsZSkgfHwgKGNhbm9uICYmIGNhbm9uLmxhYmVsKSB8 +fCAiKG9obmUgTGFiZWwpIjsKICAgIHJvdy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6 +ICJudi1sYmwiLCB0ZXh0OiBsYmwgfSkpOwogICAgaWYgKGl0LnJlZikgcm93LmFwcGVuZENoaWxk +KGVsKCJzcGFuIiwgeyBjbGFzczogIm52LWJhZGdlIiwgdGl0bGU6IGNhbm9uID8gIlZlcndlaXMg +YXVmOiAiICsgKGNhbm9uLmxhYmVsIHx8ICIiKSA6ICJWZXJ3ZWlzLVppZWwgZmVobHQiLCB0ZXh0 +OiBjYW5vbiA/ICLihqogVmVyd2VpcyIgOiAi4oaqIFppZWwgZmVobHQiIH0pKTsKICAgIGlmIChp +dC5icm9rZW4pIHJvdy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJudi1iYWRnZSB3 +YXJuIiwgdGV4dDogImZlaGx0IiB9KSk7CgogICAgdmFyIGFjdHMgPSBlbCgic3BhbiIsIHsgY2xh +c3M6ICJudi1hY3RzIiB9KTsKICAgIGFjdHMuYXBwZW5kQ2hpbGQobWluaSgi4payIiwgImhvY2gi +LCBmdW5jdGlvbiAoKSB7IGlmIChQLm5hdk1vdmUoaXQsIC0xKSkgYWZ0ZXJDaGFuZ2UoKTsgfSkp +OwogICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pKCLilrwiLCAicnVudGVyIiwgZnVuY3Rpb24gKCkg +eyBpZiAoUC5uYXZNb3ZlKGl0LCAxKSkgYWZ0ZXJDaGFuZ2UoKTsgfSkpOwogICAgaWYgKCFpdC5y +ZWYpIHsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pKCLilrgiLCAiZWlucsO8Y2tlbiAoVW50 +ZXJtZW7DvCkiLCBmdW5jdGlvbiAoKSB7IGluZGVudChpdCk7IH0pKTsKICAgICAgYWN0cy5hcHBl +bmRDaGlsZChtaW5pKCLil4IiLCAiYXVzcsO8Y2tlbiIsIGZ1bmN0aW9uICgpIHsgb3V0ZGVudChp +dCk7IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChtaW5pSWMoImVkaXQiLCAiQmV6ZWljaG51 +bmcgw6RuZGVybiIsIGZ1bmN0aW9uICgpIHsgdmFyIHYgPSBwcm9tcHQoIkJlemVpY2hudW5nOiIs +IGl0LmxhYmVsIHx8ICIiKTsgaWYgKHYgIT0gbnVsbCkgeyBpdC5sYWJlbCA9IHYudHJpbSgpIHx8 +IGl0LmxhYmVsOyBhZnRlckNoYW5nZSgpOyB9IH0pKTsKICAgICAgaWYgKGl0LmFydGljbGUpIGFj +dHMuYXBwZW5kQ2hpbGQobWluaUljKCJhcnRpY2xlIiwgIkFydGlrZWwtSW5oYWx0IGJlYXJiZWl0 +ZW4iLCBmdW5jdGlvbiAoKSB7IGNsb3NlKCk7IGlmIChQLm9wZW5BcnRpY2xlRGxnKSBQLm9wZW5B +cnRpY2xlRGxnKGl0KTsgfSkpOwogICAgICBlbHNlIGlmICghaXQuaGVhZGluZykgYWN0cy5hcHBl +bmRDaGlsZChtaW5pSWMoImxpbmsiLCAiWmllbCDDpG5kZXJuIiwgZnVuY3Rpb24gKCkgeyBlZGl0 +VGFyZ2V0KGl0KTsgfSkpOwogICAgICBpZiAoaXQuYXJ0aWNsZSB8fCBpdC5ocmVmKSBhY3RzLmFw +cGVuZENoaWxkKG1pbmkoIuKGqiIsICJBbHMgVmVyd2VpcyBkdXBsaXppZXJlbiAoYW4gYW5kZXJl +ciBTdGVsbGUgZWluYmluZGVuKSIsIGZ1bmN0aW9uICgpIHsgbWFrZVJlZihpdCk7IH0pKTsKICAg +IH0gZWxzZSB7CiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQobWluaUljKCJlZGl0IiwgIkFuemVpZ2Ut +QmV6ZWljaG51bmcgZGVzIFZlcndlaXNlcyDDpG5kZXJuIiwgZnVuY3Rpb24gKCkgeyB2YXIgdiA9 +IHByb21wdCgiQmV6ZWljaG51bmcgKGxlZXIgPSBPcmlnaW5hbCk6IiwgaXQubGFiZWwgfHwgIiIp +OyBpZiAodiAhPSBudWxsKSB7IHYgPSB2LnRyaW0oKTsgaWYgKHYpIGl0LmxhYmVsID0gdjsgZWxz +ZSBkZWxldGUgaXQubGFiZWw7IGFmdGVyQ2hhbmdlKCk7IH0gfSkpOwogICAgfQogICAgYWN0cy5h +cHBlbmRDaGlsZChtaW5pSWMoInRyYXNoIiwgImzDtnNjaGVuIiwgZnVuY3Rpb24gKCkgeyBQLmNv +bmZpcm0oIuKAniIgKyBsYmwgKyAi4oCcIGzDtnNjaGVuPyIsIGZ1bmN0aW9uICgpIHsgUC5uYXZS +ZW1vdmVGcm9tKGl0KTsgYWZ0ZXJDaGFuZ2UoKTsgfSwgeyBkYW5nZXI6IHRydWUgfSk7IH0pKTsK +ICAgIHJvdy5hcHBlbmRDaGlsZChhY3RzKTsKICAgIG5vZGUuYXBwZW5kQ2hpbGQocm93KTsKCiAg +ICBpZiAoaXQuY2hpbGRyZW4gJiYgaXQuY2hpbGRyZW4ubGVuZ3RoKSB7CiAgICAgIHZhciBraWRz +ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJudi1raWRzIiB9KTsKICAgICAgaXQuY2hpbGRyZW4uZm9y +RWFjaChmdW5jdGlvbiAoYykgeyBraWRzLmFwcGVuZENoaWxkKGl0ZW1FbChjLCBkZXB0aCArIDEp +KTsgfSk7CiAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoa2lkcyk7CiAgICB9CiAgICByZXR1cm4gbm9k +ZTsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0gQWt0aW9uZW4gKi8KICBmdW5jdGlvbiBkcm9wSXRlbShzcmMs +IHRhcmdldCwgYmVmb3JlKSB7CiAgICBpZiAoc3JjID09PSB0YXJnZXQpIHJldHVybjsKICAgIGlm +IChQLm5hdklzQW5jZXN0b3Ioc3JjLCB0YXJnZXQpKSB7IFAudG9hc3QoIkthbm4gbmljaHQgaW4g +ZGVuIGVpZ2VuZW4gVW50ZXJiYXVtIHZlcnNjaG9iZW4gd2VyZGVuLiIpOyByZXR1cm47IH0KICAg +IFAubmF2UmVtb3ZlRnJvbShzcmMpOwogICAgdmFyIGYgPSBQLm5hdkZpbmQodGFyZ2V0KTsgaWYg +KCFmKSB7IGFmdGVyQ2hhbmdlKCk7IHJldHVybjsgfQogICAgZi5hcnIuc3BsaWNlKGYuaWR4ICsg +KGJlZm9yZSA/IDAgOiAxKSwgMCwgc3JjKTsKICAgIGFmdGVyQ2hhbmdlKCk7CiAgfQogIGZ1bmN0 +aW9uIGRyb3BTZWN0aW9uKHNyYywgdGFyZ2V0LCBiZWZvcmUpIHsKICAgIGlmIChzcmMgPT09IHRh +cmdldCkgcmV0dXJuOwogICAgdmFyIGFyciA9IFAuTkFWLnNlY3Rpb25zOwogICAgdmFyIGkgPSBh +cnIuaW5kZXhPZihzcmMpOyBpZiAoaSA+PSAwKSBhcnIuc3BsaWNlKGksIDEpOwogICAgdmFyIGog +PSBhcnIuaW5kZXhPZih0YXJnZXQpOyBpZiAoaiA8IDApIGogPSBhcnIubGVuZ3RoOwogICAgYXJy +LnNwbGljZShqICsgKGJlZm9yZSA/IDAgOiAxKSwgMCwgc3JjKTsKICAgIGFmdGVyQ2hhbmdlKCk7 +CiAgfQogIGZ1bmN0aW9uIGluZGVudChpdCkgewogICAgdmFyIGYgPSBQLm5hdkZpbmQoaXQpOyBp +ZiAoIWYpIHJldHVybjsKICAgIGlmIChmLmlkeCA8PSAwKSB7IFAudG9hc3QoIktlaW4gdm9yaGVy +aWdlciBFaW50cmFnIHp1bSBFaW5yw7xja2VuLiIpOyByZXR1cm47IH0KICAgIHZhciBwcmV2ID0g +Zi5hcnJbZi5pZHggLSAxXTsKICAgIGlmIChwcmV2LmFydGljbGUpIHsgUC50b2FzdCgiVW50ZXIg +ZWluZW0gQXJ0aWtlbCBrYW5uIGtlaW4gVW50ZXJtZW7DvCBsaWVnZW4uIik7IHJldHVybjsgfQog +ICAgUC5uYXZSZW1vdmVGcm9tKGl0KTsKICAgIFAubmF2RW5zdXJlQ2hpbGRyZW4ocHJldikucHVz +aChpdCk7CiAgICBhZnRlckNoYW5nZSgpOwogIH0KICBmdW5jdGlvbiBvdXRkZW50KGl0KSB7CiAg +ICB2YXIgZiA9IFAubmF2RmluZChpdCk7IGlmICghZikgcmV0dXJuOwogICAgaWYgKCFmLnBhcmVu +dCkgeyBQLnRvYXN0KCJCZXJlaXRzIGF1ZiBvYmVyc3RlciBFYmVuZS4iKTsgcmV0dXJuOyB9CiAg +ICB2YXIgcGFyZW50ID0gZi5wYXJlbnQ7CiAgICBQLm5hdlJlbW92ZUZyb20oaXQpOwogICAgdmFy +IHBmID0gUC5uYXZGaW5kKHBhcmVudCk7IGlmICghcGYpIHsgYWZ0ZXJDaGFuZ2UoKTsgcmV0dXJu +OyB9CiAgICBwZi5hcnIuc3BsaWNlKHBmLmlkeCArIDEsIDAsIGl0KTsKICAgIGFmdGVyQ2hhbmdl +KCk7CiAgfQogIGZ1bmN0aW9uIGVkaXRUYXJnZXQoaXQpIHsKICAgIHZhciBocmVmID0gcHJvbXB0 +KCJaaWVsIChQZmFkIC8gVVJMKToiLCBpdC5ocmVmIHx8ICIiKTsgaWYgKGhyZWYgPT0gbnVsbCkg +cmV0dXJuOwogICAgaXQuaHJlZiA9IGhyZWYudHJpbSgpOwogICAgdmFyIHQgPSBwcm9tcHQoIlRh +cmdldCAoY29udGVudCA9IGltIFBvcnRhbCwgX2JsYW5rID0gbmV1ZXIgVGFiKToiLCBpdC50YXJn +ZXQgfHwgImNvbnRlbnQiKTsKICAgIGlmICh0ICE9IG51bGwpIHsgdCA9IHQudHJpbSgpOyBpZiAo +dCkgaXQudGFyZ2V0ID0gdDsgZWxzZSBkZWxldGUgaXQudGFyZ2V0OyB9CiAgICBhZnRlckNoYW5n +ZSgpOwogIH0KICAvLyBWZXJ3ZWlzIChBbGlhcykgYXVmIGRlbiBrYW5vbmlzY2hlbiBFaW50cmFn +IGVyemV1Z2VuIOKAlCBNZWhyZmFjaC1FaW5iaW5kdW5nLgogIC8vIFdpcmQgZGlyZWt0IGhpbnRl +ciBkYXMgT3JpZ2luYWwgZ2VzZXR6dDsgZGVyIEFkbWluIHppZWh0IGlobiBhbiBkaWUgWmllbHN0 +ZWxsZS4KICBmdW5jdGlvbiBtYWtlUmVmKGl0KSB7CiAgICBpZiAoIWl0Ll9pZCkgaXQuX2lkID0g +UC51aWQoIm4iKTsKICAgIHZhciBmID0gUC5uYXZGaW5kKGl0KTsgaWYgKCFmKSByZXR1cm47CiAg +ICBmLmFyci5zcGxpY2UoZi5pZHggKyAxLCAwLCB7IHJlZjogaXQuX2lkIH0pOwogICAgYWZ0ZXJD +aGFuZ2UoKTsKICAgIFAudG9hc3QoIlZlcndlaXMgYW5nZWxlZ3Qg4oCUIGFuIGRpZSBnZXfDvG5z +Y2h0ZSBTdGVsbGUgemllaGVuLiIpOwogIH0KICBmdW5jdGlvbiBhZGRMaW5rKHMpIHsKICAgIHZh +ciBsYWJlbCA9IHByb21wdCgiQmV6ZWljaG51bmcgZGVzIExpbmtzOiIsICIiKTsgaWYgKGxhYmVs +ID09IG51bGwgfHwgIWxhYmVsLnRyaW0oKSkgcmV0dXJuOwogICAgdmFyIGhyZWYgPSBwcm9tcHQo +IlppZWwgKFBmYWQgLyBVUkwpOiIsICIiKTsgaWYgKGhyZWYgPT0gbnVsbCkgcmV0dXJuOwogICAg +KHMuaXRlbXMgPSBzLml0ZW1zIHx8IFtdKS5wdXNoKHsgbGFiZWw6IGxhYmVsLnRyaW0oKSwgaHJl +ZjogaHJlZi50cmltKCksIHRhcmdldDogImNvbnRlbnQiIH0pOwogICAgYWZ0ZXJDaGFuZ2UoKTsK +ICB9CiAgZnVuY3Rpb24gYWRkU3VibWVudShzKSB7CiAgICB2YXIgbGFiZWwgPSBwcm9tcHQoIk5h +bWUgZGVzIFVudGVybWVuw7xzOiIsICIiKTsgaWYgKGxhYmVsID09IG51bGwgfHwgIWxhYmVsLnRy +aW0oKSkgcmV0dXJuOwogICAgKHMuaXRlbXMgPSBzLml0ZW1zIHx8IFtdKS5wdXNoKHsgbGFiZWw6 +IGxhYmVsLnRyaW0oKSwgY2hpbGRyZW46IFtdIH0pOwogICAgYWZ0ZXJDaGFuZ2UoKTsKICB9CiAg +ZnVuY3Rpb24gYWRkU2VjdGlvbigpIHsKICAgIHZhciB0aXRsZSA9IHByb21wdCgiTmFtZSBkZXMg +bmV1ZW4gQmVyZWljaHM6IiwgIiIpOyBpZiAodGl0bGUgPT0gbnVsbCB8fCAhdGl0bGUudHJpbSgp +KSByZXR1cm47CiAgICBQLk5BVi5zZWN0aW9ucy5wdXNoKHsgaWQ6IFAudWlkKCJzZWMiKSwgdGl0 +bGU6IHRpdGxlLnRyaW0oKSwgcGxhY2VtZW50OiAic2lkZWJhciIsIGl0ZW1zOiBbXSB9KTsKICAg +IGFmdGVyQ2hhbmdlKCk7CiAgfQogIGZ1bmN0aW9uIGRlbFNlY3Rpb24ocykgewogICAgZnVuY3Rp +b24gZG9EZWwoKSB7IHZhciBpID0gUC5OQVYuc2VjdGlvbnMuaW5kZXhPZihzKTsgaWYgKGkgPj0g +MCkgUC5OQVYuc2VjdGlvbnMuc3BsaWNlKGksIDEpOyBhZnRlckNoYW5nZSgpOyB9CiAgICBpZiAo +KHMuaXRlbXMgfHwgW10pLmxlbmd0aCkgeyBQLmNvbmZpcm0oIkJlcmVpY2gg4oCeIiArIChzLnRp +dGxlIHx8ICIiKSArICLigJwgZW50aMOkbHQgRWludHLDpGdlIOKAlCB3aXJrbGljaCBsw7ZzY2hl +bj8iLCBkb0RlbCwgeyBkYW5nZXI6IHRydWUgfSk7IH0KICAgIGVsc2UgZG9EZWwoKTsKICB9CiAg +ZnVuY3Rpb24gbW92ZVNlY3Rpb24oc2ksIGRpcikgewogICAgdmFyIGFyciA9IFAuTkFWLnNlY3Rp +b25zLCBqID0gc2kgKyBkaXI7IGlmIChqIDwgMCB8fCBqID49IGFyci5sZW5ndGgpIHJldHVybjsK +ICAgIHZhciBzID0gYXJyLnNwbGljZShzaSwgMSlbMF07IGFyci5zcGxpY2UoaiwgMCwgcyk7IGFm +dGVyQ2hhbmdlKCk7CiAgfQoKICBmdW5jdGlvbiBtaW5pKGdseXBoLCB0aXRsZSwgb24pIHsgcmV0 +dXJuIGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiB0aXRsZSwgdGV4dDog +Z2x5cGgsIG9uY2xpY2s6IG9uIH0pOyB9CiAgZnVuY3Rpb24gbWluaUljKGljb24sIHRpdGxlLCBv +bikgeyByZXR1cm4gZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6IHRpdGxl +LCBodG1sOiBpYyhpY29uKSwgb25jbGljazogb24gfSk7IH0KCn0pKHdpbmRvdy5QKTsK +### FILE: assets/js/admin/roles.js | 17366 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vcm9sZXMuanMgIChQZXJz +b25hbGxpc3RlKQogICBFaW5lIFVzZXJsaXN0ZTogTlctS2VubnVuZyDCtyBEaWVuc3RncmFkIMK3 +IFZvcm5hbWUgwrcgTmFjaG5hbWUgdW5kIEhhZWtjaGVuCiAgICJSZWRha3RldXIiLyJBZG1pbiIu +IExpZXN0L3NjaHJlaWJ0IHVlYmVyIC9hcGkvYWRtaW4vcm9sZXMgKGFkbWluLW9ubHksCiAgIHNl +cnZlci1zZWl0aWcgZXJ6d3VuZ2VuKS4gRHJlaSBRdWVsbGVuOiBkZXIgUGVyc29uZW5zcGVpY2hl +ciBwZXJzb25hbC5qc29uCiAgIChBTExFIFBlcnNvbmVuLCBhdWNoIG9obmUgUm9sbGUvS2VubnVu +ZyDigJQgei5CLiBhdXMgZGVyIEFyenRsaXN0ZSBnZXNlZWRldCkgcGx1cwogICBkaWUgUm9sbGVu +bGlzdGVuIHJlZGFrdGV1cmUudHh0L2FkbWlucy50eHQgKG51ciBQZXJzb25lbiBNSVQgZ3VlbHRp +Z2VyIEtlbm51bmc7CiAgIE5hbWUgPSAiRGllbnN0Z3JhZCBWb3JuYW1lIE5hY2huYW1lIikuIEtl +bm51bmcgaXN0IGVkaXRpZXJiYXIgLT4gU2VlZC1QZXJzb25lbgogICBvaG5lIEtlbm51bmcgbGFz +c2VuIHNpY2ggaGFlbmRpc2NoIHZlcnZvbGxzdGFlbmRpZ2VuLiBTcGVpY2hlcm4gc2NocmVpYnQg +ZGVuCiAgIGtvbXBsZXR0ZW4gUm9zdGVyIG5hY2ggcGVyc29uYWwuanNvbiB1bmQgZGllIFJvbGxl +bmluaGFiZXIgaW4gZGllIC50eHQtTGlzdGVuLgogICBXSUNIVElHOiBSb2xsZW4gd2lya2VuIGVy +c3QgYmVpbSBuYWVjaHN0ZW4gU3RhcnQgZGVzIFBmbGVnZS1IZWxmZXJzIGRlciBQZXJzb24uCiAg +ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVs +ID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljLCBlc2MgPSBQLmVzY2FwZUh0bWw7CgogIHZhciBz +dGF0ZSA9IG51bGw7ICAgLy8ge2FkbWlucywgcmVkYWt0ZXVyZSwgcGVyc29uYWwsIG1lLCByZXN0 +YXJ0SGludH0KICB2YXIgdXNlcnMgPSBbXTsgICAgIC8vIEFyYmVpdHNtb2RlbGw6IFt7a2VubnVu +ZywgZ3JhZCwgdm9ybmFtZSwgbmFjaG5hbWUsIHJlZGFrdGV1ciwgYWRtaW59XQogIHZhciBzYXZl +VGltZXIgPSBudWxsOwogIHZhciBLUkUgPSAvXltBLVphLXowLTlfXXsyLDMyfSQvOwogIGZ1bmN0 +aW9uIHZhbGlkS2VubnVuZyh1KSB7IHJldHVybiBLUkUudGVzdCgodS5rZW5udW5nIHx8ICIiKS50 +cmltKCkpOyB9CgogIC8vICJkdXJjaCBTQiIgZGVyIEFyenRsaXN0ZSAtPiB7Z3JhZCwgbmFjaG5h +bWV9LiBLb252ZW50aW9uICJOYWNobmFtZSwgR3JhZCI7IG9obmUgS29tbWE6CiAgLy8gbGV0enRl +cyBUb2tlbiBpc3QgR3JhZCwgd2VubiBlcyB3aWUgZWluIERpZW5zdGdyYWQgYXVzc2llaHQgKFBL +L1BPSy9QSEsgK2luLydpbikuCiAgdmFyIFJBTksgPSAvXlBbT0hdP0soPzpbJ+KAmV0/aW4pPyQv +aTsKICBmdW5jdGlvbiBwYXJzZVNCKHNiKSB7CiAgICBzYiA9IChzYiB8fCAiIikudHJpbSgpOyBp +ZiAoIXNiKSByZXR1cm4gbnVsbDsKICAgIHZhciBjID0gL14oLis/KSxccyooLispJC8uZXhlYyhz +Yik7IGlmIChjKSByZXR1cm4geyBncmFkOiBjWzJdLnRyaW0oKSwgbmFjaG5hbWU6IGNbMV0udHJp +bSgpIH07CiAgICB2YXIgdCA9IHNiLnNwbGl0KC9ccysvKTsKICAgIGlmICh0Lmxlbmd0aCA+PSAy +ICYmIFJBTksudGVzdCh0W3QubGVuZ3RoIC0gMV0pKSByZXR1cm4geyBncmFkOiB0W3QubGVuZ3Ro +IC0gMV0sIG5hY2huYW1lOiB0LnNsaWNlKDAsIC0xKS5qb2luKCIgIikgfTsKICAgIHJldHVybiB7 +IGdyYWQ6ICIiLCBuYWNobmFtZTogc2IgfTsKICB9CiAgLy8gUGVyc29uYWxsaXN0ZSBhdXMgZGVy +IFNCLVNwYWx0ZSBkZXIgQXJ6dGxpc3RlIHZvcmJlZnVlbGxlbiAobnVyIEdyYWQrTmFjaG5hbWU7 +IEtlbm51bmcgaGFlbmRpc2NoKS4KICBmdW5jdGlvbiBwcmVmaWxsRnJvbUFyenQoKSB7CiAgICBp +ZiAoIVAubGl2ZSkgeyBQLnRvYXN0KCJOdXIgaW0gUGZsZWdlLU1vZHVzLiIpOyByZXR1cm47IH0K +ICAgIGZldGNoKCIvYXBpL2FyenRsaXN0ZSIsIHsgY2FjaGU6ICJuby1zdG9yZSIgfSkudGhlbihm +dW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24gKGopIHsKICAg +ICAgdmFyIGVudHJpZXMgPSAoaiAmJiBqLm9rICYmIGouZW50cmllcykgPyBqLmVudHJpZXMgOiBb +XTsKICAgICAgdmFyIGhhdmUgPSB7fTsKICAgICAgdXNlcnMuZm9yRWFjaChmdW5jdGlvbiAodSkg +eyBoYXZlWygodS5ncmFkIHx8ICIiKSArICJ8IiArICh1Lm5hY2huYW1lIHx8ICIiKSkudG9Mb3dl +ckNhc2UoKV0gPSAxOyB9KTsKICAgICAgdmFyIHRvQWRkID0gW107CiAgICAgIGVudHJpZXMuZm9y +RWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciBwID0gcGFyc2VTQihlLnNiKTsgaWYgKCFw +IHx8ICFwLm5hY2huYW1lKSByZXR1cm47CiAgICAgICAgdmFyIGtleSA9ICgocC5ncmFkIHx8ICIi +KSArICJ8IiArIChwLm5hY2huYW1lIHx8ICIiKSkudG9Mb3dlckNhc2UoKTsKICAgICAgICBpZiAo +aGF2ZVtrZXldKSByZXR1cm47IGhhdmVba2V5XSA9IDE7CiAgICAgICAgdG9BZGQucHVzaCh7IGtl +bm51bmc6ICIiLCBncmFkOiBwLmdyYWQsIHZvcm5hbWU6ICIiLCBuYWNobmFtZTogcC5uYWNobmFt +ZSwgcmVkYWt0ZXVyOiBmYWxzZSwgYWRtaW46IGZhbHNlIH0pOwogICAgICB9KTsKICAgICAgaWYg +KCF0b0FkZC5sZW5ndGgpIHsgUC50b2FzdCgiS2VpbmUgbmV1ZW4gUGVyc29uZW4gYXVzIGRlciBB +cnp0bGlzdGUgZ2VmdW5kZW4uIik7IHJldHVybjsgfQogICAgICBQLmNvbmZpcm0oIkF1cyBkZXIg +QXJ6dGxpc3RlIHdlcmRlbiAiICsgdG9BZGQubGVuZ3RoICsgIiBQZXJzb24oZW4pIChEaWVuc3Rn +cmFkICsgTmFjaG5hbWUpIGluIGRpZSBQZXJzb25hbGxpc3RlIMO8YmVybm9tbWVuLiBEaWUgTlct +S2VubnVuZyB0csOkZ3N0IGR1IGRhbmFjaCBow6RuZGlzY2ggbmFjaC4gw5xiZXJuZWhtZW4/IiwK +ICAgICAgICBmdW5jdGlvbiAoKSB7IHRvQWRkLmZvckVhY2goZnVuY3Rpb24gKHUpIHsgdXNlcnMu +cHVzaCh1KTsgfSk7IHBlcnNpc3QodHJ1ZSk7IH0pOwogICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkg +eyBQLnRvYXN0KCJBcnp0bGlzdGUgbmljaHQgbGFkYmFyIChsw6R1ZnQgZGVyIEhlbGZlcj8pLiIs +IHRydWUpOyB9KTsKICB9CgogIGZ1bmN0aW9uIHNwbGl0TmFtZShuYW1lKSB7CiAgICBuYW1lID0g +KG5hbWUgfHwgIiIpLnRyaW0oKTsKICAgIGlmICghbmFtZSkgcmV0dXJuIHsgZ3JhZDogIiIsIHZv +cm5hbWU6ICIiLCBuYWNobmFtZTogIiIgfTsKICAgIHZhciBjID0gL14oLis/KSxccyooLispJC8u +ZXhlYyhuYW1lKTsgICAgICAgICAgICAgICAgIC8vICJOYWNobmFtZSwgR3JhZCIKICAgIGlmIChj +KSByZXR1cm4geyBncmFkOiBjWzJdLnRyaW0oKSwgdm9ybmFtZTogIiIsIG5hY2huYW1lOiBjWzFd +LnRyaW0oKSB9OwogICAgdmFyIHQgPSBuYW1lLnNwbGl0KC9ccysvKTsKICAgIGlmICh0Lmxlbmd0 +aCA9PT0gMSkgcmV0dXJuIHsgZ3JhZDogIiIsIHZvcm5hbWU6ICIiLCBuYWNobmFtZTogdFswXSB9 +OwogICAgaWYgKHQubGVuZ3RoID09PSAyKSByZXR1cm4geyBncmFkOiB0WzBdLCB2b3JuYW1lOiAi +IiwgbmFjaG5hbWU6IHRbMV0gfTsKICAgIHJldHVybiB7IGdyYWQ6IHRbMF0sIHZvcm5hbWU6IHQu +c2xpY2UoMSwgLTEpLmpvaW4oIiAiKSwgbmFjaG5hbWU6IHRbdC5sZW5ndGggLSAxXSB9OwogIH0K +ICBmdW5jdGlvbiBqb2luTmFtZSh1KSB7IHJldHVybiBbdS5ncmFkLCB1LnZvcm5hbWUsIHUubmFj +aG5hbWVdLm1hcChmdW5jdGlvbiAocykgeyByZXR1cm4gKHMgfHwgIiIpLnRyaW0oKTsgfSkuZmls +dGVyKEJvb2xlYW4pLmpvaW4oIiAiKTsgfQoKICAvLyBTY2hsdWVzc2VsOiBuYWNoIEtlbm51bmcg +KHdlbm4gdm9yaGFuZGVuKSwgc29uc3QgbmFjaCBOYW1lIChHcmFkK05hY2huYW1lKSAtPiBzbyBs +YXNzZW4gc2ljaAogIC8vIFNlZWQtUGVyc29uZW4gb2huZSBLZW5udW5nIHNwYWV0ZXIgbWl0IGlo +cmVyIFJvbGxlbmVpbnRyYWd1bmcgKG1pdCBLZW5udW5nKSB6dXNhbW1lbmZ1ZWhyZW4uCiAgZnVu +Y3Rpb24ga2tleShrZW5udW5nKSB7IHJldHVybiAiazoiICsgKGtlbm51bmcgfHwgIiIpLnRyaW0o +KS50b0xvd2VyQ2FzZSgpOyB9CiAgZnVuY3Rpb24gbmtleSh1KSB7IHJldHVybiAibjoiICsgKCh1 +LmdyYWQgfHwgIiIpICsgInwiICsgKHUubmFjaG5hbWUgfHwgIiIpKS50cmltKCkudG9Mb3dlckNh +c2UoKTsgfQoKICBmdW5jdGlvbiBidWlsZFVzZXJzKHN0KSB7CiAgICB2YXIgbGlzdCA9IFtdLCBi +eUtleSA9IHt9OwogICAgZnVuY3Rpb24gcHV0KHUsIGtleSkgeyBieUtleVtrZXldID0gdTsgbGlz +dC5wdXNoKHUpOyB9CiAgICAvLyAxKSBQZXJzb25lbnNwZWljaGVyIGFscyBCYXNpcyAoYXVjaCBQ +ZXJzb25lbiBPSE5FIFJvbGxlL0tlbm51bmcpCiAgICAoc3QucGVyc29uYWwgfHwgW10pLmZvckVh +Y2goZnVuY3Rpb24gKGUsIGkpIHsKICAgICAgdmFyIHUgPSB7IGtlbm51bmc6IChlLmtlbm51bmcg +fHwgIiIpLnRyaW0oKSwgZ3JhZDogKGUuZ3JhZCB8fCAiIikudHJpbSgpLCB2b3JuYW1lOiAoZS52 +b3JuYW1lIHx8ICIiKS50cmltKCksIG5hY2huYW1lOiAoZS5uYWNobmFtZSB8fCAiIikudHJpbSgp +LCByZWRha3RldXI6IGZhbHNlLCBhZG1pbjogZmFsc2UgfTsKICAgICAgaWYgKHUua2VubnVuZykg +ewogICAgICAgIHZhciBrayA9IGtrZXkodS5rZW5udW5nKTsKICAgICAgICBpZiAoYnlLZXlba2td +KSByZXR1cm47ICAgICAgICAgICAgLy8gZ2xlaWNoZSBLZW5udW5nIC0+IGVjaHRlIER1YmxldHRl +LCB1ZWJlcnNwcmluZ2VuCiAgICAgICAgcHV0KHUsIGtrKTsKICAgICAgfSBlbHNlIHsKICAgICAg +ICAvLyBPSE5FIEtlbm51bmc6IE5JRSB3ZWdlbiBOYW1lbnNnbGVpY2hoZWl0IHZlcndlcmZlbiAo +c29uc3QgRGF0ZW52ZXJsdXN0IGJlaW0gUmVsb2FkKS4KICAgICAgICAvLyBVbnRlciBua2V5IGF1 +ZmZpbmRiYXIgZnVlciBkZW4gUm9sbGVuLU1lcmdlOyBiZWkgTmFtZW5zLUtvbGxpc2lvbiBlaW5k +ZXV0aWdlbiBLZXkgdmVyZ2ViZW4uCiAgICAgICAgdmFyIG5rID0gbmtleSh1KTsKICAgICAgICBw +dXQodSwgYnlLZXlbbmtdID8gKG5rICsgIiMiICsgaSkgOiBuayk7CiAgICAgIH0KICAgIH0pOwog +ICAgLy8gMikgUm9sbGVuaW5oYWJlciAoaGFiZW4gaW1tZXIgZWluZSBLZW5udW5nKSAtPiBGbGFn +IHNldHplbjsgdWViZXIgS2VubnVuZyBPREVSIE5hbWUgenVzYW1tZW5mdWVocmVuCiAgICBmdW5j +dGlvbiBhcHBseVJvbGUoYXJyLCBmbGFnKSB7CiAgICAgIChhcnIgfHwgW10pLmZvckVhY2goZnVu +Y3Rpb24gKGUpIHsKICAgICAgICB2YXIgayA9IChlLmtlbm51bmcgfHwgIiIpLnRyaW0oKTsgaWYg +KCFrKSByZXR1cm47CiAgICAgICAgdmFyIHNwID0gc3BsaXROYW1lKGUubmFtZSk7CiAgICAgICAg +dmFyIHUgPSBieUtleVtra2V5KGspXTsKICAgICAgICBpZiAoIXUpIHsKICAgICAgICAgIHZhciBu +ayA9ICJuOiIgKyAoKHNwLmdyYWQgfHwgIiIpICsgInwiICsgKHNwLm5hY2huYW1lIHx8ICIiKSku +dHJpbSgpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICBpZiAoYnlLZXlbbmtdICYmICFieUtleVtu +a10ua2VubnVuZykgeyB1ID0gYnlLZXlbbmtdOyB1Lmtlbm51bmcgPSBrOyBkZWxldGUgYnlLZXlb +bmtdOyBieUtleVtra2V5KGspXSA9IHU7IH0KICAgICAgICAgIGVsc2UgeyB1ID0geyBrZW5udW5n +OiBrLCBncmFkOiBzcC5ncmFkLCB2b3JuYW1lOiBzcC52b3JuYW1lLCBuYWNobmFtZTogc3AubmFj +aG5hbWUsIHJlZGFrdGV1cjogZmFsc2UsIGFkbWluOiBmYWxzZSB9OyBwdXQodSwga2tleShrKSk7 +IH0KICAgICAgICB9CiAgICAgICAgaWYgKCFqb2luTmFtZSh1KSAmJiBlLm5hbWUpIHsgdS5ncmFk +ID0gc3AuZ3JhZDsgdS52b3JuYW1lID0gc3Audm9ybmFtZTsgdS5uYWNobmFtZSA9IHNwLm5hY2hu +YW1lOyB9CiAgICAgICAgdVtmbGFnXSA9IHRydWU7CiAgICAgIH0pOwogICAgfQogICAgYXBwbHlS +b2xlKHN0LnJlZGFrdGV1cmUsICJyZWRha3RldXIiKTsKICAgIGFwcGx5Um9sZShzdC5hZG1pbnMs +ICJhZG1pbiIpOwogICAgcmV0dXJuIGxpc3Quc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4g +KGEubmFjaG5hbWUgfHwgYS5rZW5udW5nIHx8ICIiKS5sb2NhbGVDb21wYXJlKGIubmFjaG5hbWUg +fHwgYi5rZW5udW5nIHx8ICIiKTsgfSk7CiAgfQoKICBQLm9wZW5Sb2xlQWRtaW4gPSBmdW5jdGlv +biAoKSB7CiAgICBpZiAoUC5yb2xlICE9PSAiYWRtaW4iKSB7IFAudG9hc3QoIlBlcnNvbmFsbGlz +dGUgaXN0IEFkbWlucyB2b3JiZWhhbHRlbi4iKTsgcmV0dXJuOyB9CiAgICBQLm1vZGFsKHsKICAg +ICAgdGl0bGU6ICJQZXJzb25hbGxpc3RlIMK3IFJvbGxlbiIsIGljb246ICJ1c2VyIiwgc2l6ZTog +InhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICBob3N0LmNsYXNzTGlz +dC5hZGQoInJvbGVzLWJvZHkiKTsgaG9zdC5pZCA9ICJyb2xlcy1ib2R5IjsKICAgICAgICBob3N0 +LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiTGFkZeKApiIg +fSkpOwogICAgICAgIGZldGNoKCIvYXBpL2FkbWluL3JvbGVzIikudGhlbihmdW5jdGlvbiAocikg +eyBpZiAoci5zdGF0dXMgPT09IDQwMykgdGhyb3cgbmV3IEVycm9yKCI0MDMiKTsgcmV0dXJuIHIu +anNvbigpOyB9KQogICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKGopIHsgaWYgKCFqIHx8ICFqLm9r +KSB0aHJvdyBuZXcgRXJyb3IoImxvYWQiKTsgc3RhdGUgPSBqOyB1c2VycyA9IGJ1aWxkVXNlcnMo +c3RhdGUpOyByZW5kZXIoKTsgfSkKICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZSkgeyBob3N0 +LmlubmVySFRNTCA9ICIiOyBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0 +ZWQiLCB0ZXh0OiBlLm1lc3NhZ2UgPT09ICI0MDMiID8gIktlaW5lIEFkbWluLVJlY2h0ZS4iIDog +IlBlcnNvbmFsbGlzdGUgbmljaHQgbGFkYmFyLiIgfSkpOyB9KTsKICAgICAgfSwKICAgICAgYWN0 +aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJBdXMgQXJ6dGxpc3RlIHZvcmJlZsO8bGxlbiIsIGtp +bmQ6ICJnaG9zdCIsIGljb246ICJpbmJveCIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVl +LCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHByZWZpbGxGcm9tQXJ6dCgpOyB9IH0sCiAgICAgICAg +eyBsYWJlbDogIlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0KICAgICAgXQogICAgfSk7CiAg +fTsKCiAgZnVuY3Rpb24gYWRtaW5Db3VudCgpIHsgcmV0dXJuIHVzZXJzLmZpbHRlcihmdW5jdGlv +biAodSkgeyByZXR1cm4gdS5hZG1pbjsgfSkubGVuZ3RoOyB9CgogIGZ1bmN0aW9uIHJlbmRlcigp +IHsKICAgIHZhciBib2R5ID0gJCgiI3JvbGVzLWJvZHkiKTsgaWYgKCFib2R5IHx8ICFzdGF0ZSkg +cmV0dXJuOwogICAgYm9keS5pbm5lckhUTUwgPSAiIjsKICAgIGJvZHkuYXBwZW5kQ2hpbGQoZWwo +ImRpdiIsIHsgY2xhc3M6ICJyb2xlcy1oaW50IiwgaHRtbDogaWMoImFsZXJ0IikgKyAiPHNwYW4+ +IiArIGVzYyhzdGF0ZS5yZXN0YXJ0SGludCB8fCAiUm9sbGVuLUFlbmRlcnVuZ2VuIHdpcmtlbiBl +cnN0IGJlaW0gbmFlY2hzdGVuIFN0YXJ0IGRlcyBQZmxlZ2UtSGVsZmVycyBkZXIgYmV0cm9mZmVu +ZW4gUGVyc29uLiIpICsgIjwvc3Bhbj4iIH0pKTsKICAgIGJvZHkuYXBwZW5kQ2hpbGQoZWwoImRp +diIsIHsgY2xhc3M6ICJyb2xlcy1oaW50IiwgaHRtbDogaWMoInVzZXIiKSArICI8c3Bhbj5FaW5l +IFJvbGxlIChSZWRha3RldXIvQWRtaW4pIGlzdCBudXIgbWl0IGfDvGx0aWdlciBOVy1LZW5udW5n +IHNldHpiYXIuIEJlaSB2b3JiZWbDvGxsdGVuIFBlcnNvbmVuIChvaG5lIEtlbm51bmcpIHNpbmQg +ZGllIEhha2VuIGF1c2dlZ3JhdXQg4oCUIHp1ZXJzdCBkaWUgTlctS2VubnVuZyBlaW50cmFnZW4s +IGRhbm4gbGFzc2VuIHNpZSBzaWNoIHNldHplbi48L3NwYW4+IiB9KSk7CgogICAgdmFyIG1lID0g +KHN0YXRlLm1lIHx8ICIiKS50b0xvd2VyQ2FzZSgpOwogICAgdmFyIHRibCA9IGVsKCJ0YWJsZSIs +IHsgY2xhc3M6ICJwbC10YmwiIH0pOwogICAgdmFyIHRoZWFkID0gZWwoInRoZWFkIik7CiAgICB0 +aGVhZC5hcHBlbmRDaGlsZChlbCgidHIiLCBudWxsLCBbCiAgICAgIGVsKCJ0aCIsIHsgdGV4dDog +Ik5XLUtlbm51bmciIH0pLCBlbCgidGgiLCB7IHRleHQ6ICJEaWVuc3RncmFkIiB9KSwgZWwoInRo +IiwgeyB0ZXh0OiAiVm9ybmFtZSIgfSksIGVsKCJ0aCIsIHsgdGV4dDogIk5hY2huYW1lIiB9KSwK +ICAgICAgZWwoInRoIiwgeyBjbGFzczogInBsLWMiLCB0ZXh0OiAiUmVkYWt0ZXVyIiB9KSwgZWwo +InRoIiwgeyBjbGFzczogInBsLWMiLCB0ZXh0OiAiQWRtaW4iIH0pLCBlbCgidGgiLCB7IGNsYXNz +OiAicGwtYyIsIHRleHQ6ICIiIH0pCiAgICBdKSk7CiAgICB0YmwuYXBwZW5kQ2hpbGQodGhlYWQp +OwogICAgdmFyIHRiID0gZWwoInRib2R5Iik7CiAgICB1c2Vycy5mb3JFYWNoKGZ1bmN0aW9uICh1 +KSB7CiAgICAgIHZhciBsayA9ICh1Lmtlbm51bmcgfHwgIiIpLnRvTG93ZXJDYXNlKCk7CiAgICAg +IHZhciBpc01lID0gbGsgPT09IG1lOwogICAgICB2YXIgdHIgPSBlbCgidHIiKTsKICAgICAgLy8g +S2VubnVuZyBqZXR6dCBlZGl0aWVyYmFyIChTZWVkLVBlcnNvbmVuIGtvbW1lbiBvaG5lIEtlbm51 +bmcgLT4gaGFlbmRpc2NoIG5hY2h0cmFnZW4pCiAgICAgIHZhciBrSW5wID0gZWwoImlucHV0Iiwg +eyB0eXBlOiAidGV4dCIsIGNsYXNzOiAibW9ubyIsIHZhbHVlOiB1Lmtlbm51bmcgfHwgIiIsIHBs +YWNlaG9sZGVyOiAiTlctS2VubnVuZyIgfSk7CiAgICAgIGlmIChpc01lKSB7IGtJbnAuZGlzYWJs +ZWQgPSB0cnVlOyBrSW5wLnRpdGxlID0gIkRpZSBlaWdlbmUgS2VubnVuZyBrYW5uIGhpZXIgbmlj +aHQgZ2VhZW5kZXJ0IHdlcmRlbi4iOyB9CiAgICAgIGtJbnAuYWRkRXZlbnRMaXN0ZW5lcigiaW5w +dXQiLCBmdW5jdGlvbiAoKSB7IHUua2VubnVuZyA9IGtJbnAudmFsdWU7IGFwcGx5Um9sZUVuYWJs +ZSgpOyBzY2hlZHVsZVNhdmUoKTsgfSk7CiAgICAgIHRyLmFwcGVuZENoaWxkKGVsKCJ0ZCIsIG51 +bGwsIFtrSW5wXSkpOwogICAgICBbImdyYWQiLCAidm9ybmFtZSIsICJuYWNobmFtZSJdLmZvckVh +Y2goZnVuY3Rpb24gKGYpIHsKICAgICAgICB2YXIgaW5wID0gZWwoImlucHV0IiwgeyB0eXBlOiAi +dGV4dCIsIHZhbHVlOiB1W2ZdIHx8ICIiIH0pOwogICAgICAgIGlucC5hZGRFdmVudExpc3RlbmVy +KCJpbnB1dCIsIGZ1bmN0aW9uICgpIHsgdVtmXSA9IGlucC52YWx1ZTsgc2NoZWR1bGVTYXZlKCk7 +IH0pOwogICAgICAgIHRyLmFwcGVuZENoaWxkKGVsKCJ0ZCIsIG51bGwsIFtpbnBdKSk7CiAgICAg +IH0pOwogICAgICAvLyBSb2xsZSBzZXR6ZW4gZ2VodCBudXIgbWl0IGd1ZWx0aWdlciBLZW5udW5n +IChSb2xsZW5saXN0ZW4gYnJhdWNoZW4gZGllIEtlbm51bmcpCiAgICAgIGZ1bmN0aW9uIGd1YXJk +Um9sZShjYiwgZmxhZykgewogICAgICAgIGlmIChjYi5jaGVja2VkICYmICF2YWxpZEtlbm51bmco +dSkpIHsgUC50b2FzdCgiRXJzdCBlaW5lIGfDvGx0aWdlIE5XLUtlbm51bmcgZWludHJhZ2VuICgy +4oCTMzI6IEHigJNaIDDigJM5IF8pLiIpOyBjYi5jaGVja2VkID0gZmFsc2U7IHJldHVybiBmYWxz +ZTsgfQogICAgICAgIHVbZmxhZ10gPSBjYi5jaGVja2VkOyByZXR1cm4gdHJ1ZTsKICAgICAgfQog +ICAgICAvLyBSZWRha3RldXIgKyBBZG1pbi4gUm9sbGVuIGJyYXVjaGVuIGVpbmUgZ3VlbHRpZ2Ug +TlctS2VubnVuZyAtPiBvaG5lIEtlbm51bmcKICAgICAgLy8gc2luZCBkaWUgSGFrZW4gc2ljaHRi +YXIgZGVha3RpdmllcnQgKHN0YXR0IGJlaW0gS2xpY2sgenVydWVja3p1c3ByaW5nZW4pIHVuZAog +ICAgICAvLyB3ZXJkZW4gbGl2ZSBha3Rpdiwgc29iYWxkIGVpbmUgZ3VlbHRpZ2UgS2VubnVuZyBl +aW5nZXRpcHB0IHdpcmQuCiAgICAgIHZhciByY2IgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJjaGVj +a2JveCIgfSk7IHJjYi5jaGVja2VkID0gISF1LnJlZGFrdGV1cjsKICAgICAgdmFyIGFjYiA9IGVs +KCJpbnB1dCIsIHsgdHlwZTogImNoZWNrYm94IiB9KTsgYWNiLmNoZWNrZWQgPSAhIXUuYWRtaW47 +CiAgICAgIHZhciBsb2NrQWRtaW4gPSAoaXNNZSAmJiB1LmFkbWluKSB8fCAodS5hZG1pbiAmJiBh +ZG1pbkNvdW50KCkgPD0gMSk7CiAgICAgIHZhciBOT19LID0gIkVyc3QgZWluZSBnw7xsdGlnZSBO +Vy1LZW5udW5nIGVpbnRyYWdlbiDigJQgZGFubiBpc3QgZGllIFJvbGxlIHNldHpiYXIuIjsKICAg +ICAgZnVuY3Rpb24gYXBwbHlSb2xlRW5hYmxlKCkgewogICAgICAgIHZhciBvayA9IHZhbGlkS2Vu +bnVuZyh1KTsKICAgICAgICByY2IuZGlzYWJsZWQgPSAhb2s7IHJjYi50aXRsZSA9IG9rID8gIiIg +OiBOT19LOwogICAgICAgIGFjYi5kaXNhYmxlZCA9ICFvayB8fCBsb2NrQWRtaW47CiAgICAgICAg +YWNiLnRpdGxlID0gbG9ja0FkbWluID8gIk1pbmRlc3RlbnMgZWluIEFkbWluIG11c3MgYmxlaWJl +bjsgZWlnZW5lIEFkbWluLVJlY2h0ZSBuaWNodCBzZWxic3QgZW50emllaGJhci4iIDogKG9rID8g +IiIgOiBOT19LKTsKICAgICAgfQogICAgICBhcHBseVJvbGVFbmFibGUoKTsKICAgICAgcmNiLmFk +ZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgaWYgKGd1YXJkUm9sZShyY2Is +ICJyZWRha3RldXIiKSkgcGVyc2lzdCh0cnVlKTsgfSk7CiAgICAgIHRyLmFwcGVuZENoaWxkKGVs +KCJ0ZCIsIHsgY2xhc3M6ICJwbC1jIiB9LCBbcmNiXSkpOwogICAgICBhY2IuYWRkRXZlbnRMaXN0 +ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24gKCkgeyBpZiAoZ3VhcmRSb2xlKGFjYiwgImFkbWluIikp +IHBlcnNpc3QodHJ1ZSk7IH0pOwogICAgICB0ci5hcHBlbmRDaGlsZChlbCgidGQiLCB7IGNsYXNz +OiAicGwtYyIgfSwgW2FjYl0pKTsKICAgICAgLy8gTG9lc2NoZW4KICAgICAgdmFyIGRlbCA9IGVs +KCJidXR0b24iLCB7IGNsYXNzOiAibWluaS1idG4iLCB0aXRsZTogIkF1cyBkZXIgUGVyc29uYWxs +aXN0ZSBlbnRmZXJuZW4iLCBodG1sOiBpYygidHJhc2giKSwKICAgICAgICBvbmNsaWNrOiBmdW5j +dGlvbiAoKSB7CiAgICAgICAgICBpZiAoaXNNZSAmJiB1LmFkbWluKSB7IFAudG9hc3QoIkR1IGth +bm5zdCBkaWNoIG5pY2h0IHNlbGJzdCBlbnRmZXJuZW4uIik7IHJldHVybjsgfQogICAgICAgICAg +aWYgKHUuYWRtaW4gJiYgYWRtaW5Db3VudCgpIDw9IDEpIHsgUC50b2FzdCgiTWluZGVzdGVucyBl +aW4gQWRtaW4gbXVzcyBibGVpYmVuLiIpOyByZXR1cm47IH0KICAgICAgICAgIFAuY29uZmlybSgi +4oCeIiArIChqb2luTmFtZSh1KSB8fCB1Lmtlbm51bmcpICsgIuKAnCBhdXMgZGVyIFBlcnNvbmFs +bGlzdGUgZW50ZmVybmVuPyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdXNlcnMgPSB1c2Vy +cy5maWx0ZXIoZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggIT09IHU7IH0pOyBwZXJzaXN0KHRydWUp +OwogICAgICAgICAgfSwgeyBkYW5nZXI6IHRydWUgfSk7CiAgICAgICAgfSB9KTsKICAgICAgdHIu +YXBwZW5kQ2hpbGQoZWwoInRkIiwgeyBjbGFzczogInBsLWMiIH0sIFtkZWxdKSk7CiAgICAgIHRi +LmFwcGVuZENoaWxkKHRyKTsKICAgIH0pOwogICAgdGJsLmFwcGVuZENoaWxkKHRiKTsKICAgIGJv +ZHkuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwbC10Ymx3cmFwIiB9LCBbdGJsXSkp +OwogICAgaWYgKCF1c2Vycy5sZW5ndGgpIGJvZHkuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xh +c3M6ICJtdXRlZCIsIHRleHQ6ICJOb2NoIGtlaW5lIFBlcnNvbmVuLiIgfSkpOwoKICAgIC8vIEhp +bnp1ZnVlZ2VuCiAgICB2YXIga0luID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHBsYWNl +aG9sZGVyOiAiTlctS2VubnVuZyIsIGNsYXNzOiAicGwtYWRkLWsiIH0pOwogICAgdmFyIGdJbiA9 +IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBwbGFjZWhvbGRlcjogIkRpZW5zdGdyYWQiLCBj +bGFzczogInBsLWFkZC1nIiB9KTsKICAgIHZhciB2SW4gPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0 +ZXh0IiwgcGxhY2Vob2xkZXI6ICJWb3JuYW1lIiwgY2xhc3M6ICJwbC1hZGQtdiIgfSk7CiAgICB2 +YXIgbkluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHBsYWNlaG9sZGVyOiAiTmFjaG5h +bWUiLCBjbGFzczogInBsLWFkZC1uIiB9KTsKICAgIHZhciByQ2IgPSBlbCgiaW5wdXQiLCB7IHR5 +cGU6ICJjaGVja2JveCIsIHRpdGxlOiAiUmVkYWt0ZXVyIiB9KTsKICAgIHZhciBhQ2IgPSBlbCgi +aW5wdXQiLCB7IHR5cGU6ICJjaGVja2JveCIsIHRpdGxlOiAiQWRtaW4iIH0pOwogICAgdmFyIGFk +ZEJ0biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYnRuIHByaW1hcnkiLCBodG1sOiBpYygicGx1 +cyIpICsgIiBIaW56dWbDvGdlbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsKICAgICAg +ICB2YXIgayA9IChrSW4udmFsdWUgfHwgIiIpLnRyaW0oKTsKICAgICAgICB2YXIgbm4gPSAobklu +LnZhbHVlIHx8ICIiKS50cmltKCksIGdnID0gKGdJbi52YWx1ZSB8fCAiIikudHJpbSgpLCB2diA9 +ICh2SW4udmFsdWUgfHwgIiIpLnRyaW0oKTsKICAgICAgICB2YXIgd2FudHNSb2xlID0gISFyQ2Iu +Y2hlY2tlZCB8fCAhIWFDYi5jaGVja2VkOwogICAgICAgIGlmIChrICYmICFLUkUudGVzdChrKSkg +eyBQLnRvYXN0KCJVbmfDvGx0aWdlIE5XLUtlbm51bmcgKDLigJMzMiBaZWljaGVuOiBB4oCTWiAw +4oCTOSBfKS4iKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKCFrICYmIHdhbnRzUm9sZSkgeyBQLnRv +YXN0KCJGw7xyIGVpbmUgUm9sbGUgKFJlZGFrdGV1ci9BZG1pbikgaXN0IGVpbmUgZ8O8bHRpZ2Ug +TlctS2VubnVuZyBuw7Z0aWcuIik7IHJldHVybjsgfQogICAgICAgIGlmICghayAmJiAhbm4pIHsg +UC50b2FzdCgiQml0dGUgbWluZGVzdGVucyBOVy1LZW5udW5nIG9kZXIgTmFjaG5hbWUgYW5nZWJl +bi4iKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKGsgJiYgdXNlcnMuc29tZShmdW5jdGlvbiAoeCkg +eyByZXR1cm4gKHgua2VubnVuZyB8fCAiIikudG9Mb3dlckNhc2UoKSA9PT0gay50b0xvd2VyQ2Fz +ZSgpOyB9KSkgeyBQLnRvYXN0KCJEaWVzZSBLZW5udW5nIGlzdCBiZXJlaXRzIGluIGRlciBMaXN0 +ZS4iKTsgcmV0dXJuOyB9CiAgICAgICAgdXNlcnMucHVzaCh7IGtlbm51bmc6IGssIGdyYWQ6IGdn +LCB2b3JuYW1lOiB2diwgbmFjaG5hbWU6IG5uLCByZWRha3RldXI6ICEhckNiLmNoZWNrZWQsIGFk +bWluOiAhIWFDYi5jaGVja2VkIH0pOwogICAgICAgIHBlcnNpc3QodHJ1ZSk7CiAgICAgIH0gfSk7 +CiAgICBib2R5LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAicGwtYWRkIiB9LCBbCiAg +ICAgIGtJbiwgZ0luLCB2SW4sIG5JbiwKICAgICAgZWwoImxhYmVsIiwgeyBjbGFzczogInBsLWFk +ZC1jYiIgfSwgW3JDYiwgZWwoInNwYW4iLCB7IHRleHQ6ICJSZWQuIiB9KV0pLAogICAgICBlbCgi +bGFiZWwiLCB7IGNsYXNzOiAicGwtYWRkLWNiIiB9LCBbYUNiLCBlbCgic3BhbiIsIHsgdGV4dDog +IkFkbWluIiB9KV0pLAogICAgICBhZGRCdG4KICAgIF0pKTsKICB9CgogIGZ1bmN0aW9uIHNjaGVk +dWxlU2F2ZSgpIHsgaWYgKHNhdmVUaW1lcikgY2xlYXJUaW1lb3V0KHNhdmVUaW1lcik7IHNhdmVU +aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBzYXZlVGltZXIgPSBudWxsOyBwZXJzaXN0 +KGZhbHNlKTsgfSwgNzAwKTsgfQoKICBmdW5jdGlvbiBwZXJzaXN0KHJlbG9hZEFmdGVyKSB7CiAg +ICAvLyAxKSBQZXJzb25lbnNwZWljaGVyID0gQUxMRSBQZXJzb25lbiAoYXVjaCBvaG5lIFJvbGxl +L0tlbm51bmcpIC0+IHBlcnNvbmFsLmpzb24KICAgIHZhciByb3N0ZXIgPSB1c2Vycy5tYXAoZnVu +Y3Rpb24gKHUpIHsgcmV0dXJuIHsga2VubnVuZzogKHUua2VubnVuZyB8fCAiIikudHJpbSgpLCBn +cmFkOiAodS5ncmFkIHx8ICIiKS50cmltKCksIHZvcm5hbWU6ICh1LnZvcm5hbWUgfHwgIiIpLnRy +aW0oKSwgbmFjaG5hbWU6ICh1Lm5hY2huYW1lIHx8ICIiKS50cmltKCkgfTsgfSkKICAgICAgLmZp +bHRlcihmdW5jdGlvbiAodSkgeyByZXR1cm4gdS5rZW5udW5nIHx8IHUuZ3JhZCB8fCB1LnZvcm5h +bWUgfHwgdS5uYWNobmFtZTsgfSk7CiAgICAvLyAyKSBSb2xsZW5saXN0ZW4gbnVyIGZ1ZXIgUGVy +c29uZW4gbWl0IGd1ZWx0aWdlciBLZW5udW5nIChhZG1pbnMudHh0L3JlZGFrdGV1cmUudHh0KQog +ICAgdmFyIHJlZGFrcyA9IHVzZXJzLmZpbHRlcihmdW5jdGlvbiAodSkgeyByZXR1cm4gdS5yZWRh +a3RldXIgJiYgdmFsaWRLZW5udW5nKHUpOyB9KS5tYXAoZnVuY3Rpb24gKHUpIHsgcmV0dXJuIHsg +a2VubnVuZzogdS5rZW5udW5nLnRyaW0oKSwgbmFtZTogam9pbk5hbWUodSkgfTsgfSk7CiAgICB2 +YXIgYWRtaW5zID0gdXNlcnMuZmlsdGVyKGZ1bmN0aW9uICh1KSB7IHJldHVybiB1LmFkbWluICYm +IHZhbGlkS2VubnVuZyh1KTsgfSkubWFwKGZ1bmN0aW9uICh1KSB7IHJldHVybiB7IGtlbm51bmc6 +IHUua2VubnVuZy50cmltKCksIG5hbWU6IGpvaW5OYW1lKHUpIH07IH0pOwogICAgLy8gRHJlaSBV +TkFCSEFFTkdJR0UgU3BlaWNoZXJ6aWVsZTogZWluIEZlaGxlciBiZWkgZWluZW0gKHouQi4gYWx0 +ZXIgSGVsZmVyIG9obmUgcGVyc29uYWwtCiAgICAvLyBFbmRwb2ludCwgb2RlciBBZG1pbi1Mb2Nr +b3V0KSBkYXJmIGRpZSBhbmRlcmVuIE5JQ0hUIGJsb2NraWVyZW4gLT4gc29uc3QgZ2VoZW4gUm9s +bGVuIHZlcmxvcmVuLgogICAgUHJvbWlzZS5hbGwoWwogICAgICBzYXZlTGlzdCgicGVyc29uYWwi +LCByb3N0ZXIpLAogICAgICBzYXZlTGlzdCgicmVkYWt0ZXVyIiwgcmVkYWtzKSwKICAgICAgc2F2 +ZUxpc3QoImFkbWluIiwgYWRtaW5zKQogICAgXSkudGhlbihmdW5jdGlvbiAob2tzKSB7CiAgICAg +IGlmIChva3NbMV0gJiYgb2tzWzJdKSB7IHN5bmNUZWFtVG9TZXR0aW5ncygpOyBQLnRvYXN0KCJH +ZXNwZWljaGVydC4gV2lya3QgYmVpbSBuw6RjaHN0ZW4gSGVsZmVyLVN0YXJ0LiIpOyB9CiAgICAg +IGVsc2UgaWYgKG9rc1sxXSB8fCBva3NbMl0pIFAudG9hc3QoIlRlaWx3ZWlzZSBnZXNwZWljaGVy +dCDigJQgc2llaGUgTWVsZHVuZyhlbikuIiwgdHJ1ZSk7CiAgICAgIGlmIChyZWxvYWRBZnRlcikg +cmVsb2FkKCk7CiAgICB9KTsKICB9CiAgLy8gQW56ZWlnZW5hbWVuIGRlciBSb2xsZW5pbmhhYmVy +IChPSE5FIE5vdGZhbGwtS2VubnVuZ2VuID0gImljaCIvRGV2KSBsZXNlci1zaWNodGJhciBuYWNo +CiAgLy8gc2V0dGluZ3MudGVhbSB2ZXJvZWZmZW50bGljaGVuIC0+IGRhcyBJbXByZXNzdW0gbGlz +dGV0IFJlZGFrdGlvbi9BZG1pbmlzdHJhdGlvbiBhdXRvbWF0aXNjaC4KICBmdW5jdGlvbiBzeW5j +VGVhbVRvU2V0dGluZ3MoKSB7CiAgICBpZiAoIVAuY29udGVudCB8fCAhUC5jb250ZW50LnNldHRp +bmdzKSByZXR1cm47CiAgICB2YXIgZW1lcmcgPSB7fTsgKChzdGF0ZSAmJiBzdGF0ZS5lbWVyZ2Vu +Y3kpIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7IGVtZXJnW1N0cmluZyhrKS50b0xvd2Vy +Q2FzZSgpXSA9IDE7IH0pOwogICAgZnVuY3Rpb24gZGlzcCh1KSB7IHJldHVybiB7IGdyYWQ6IHUu +Z3JhZCB8fCAiIiwgdm9ybmFtZTogdS52b3JuYW1lIHx8ICIiLCBuYWNobmFtZTogdS5uYWNobmFt +ZSB8fCAiIiwga2VubnVuZzogdS5rZW5udW5nIHx8ICIiIH07IH0KICAgIGZ1bmN0aW9uIHBpY2so +ZmxhZykgeyByZXR1cm4gdXNlcnMuZmlsdGVyKGZ1bmN0aW9uICh1KSB7IHJldHVybiB1W2ZsYWdd +ICYmICFlbWVyZ1sodS5rZW5udW5nIHx8ICIiKS50b0xvd2VyQ2FzZSgpXTsgfSkubWFwKGRpc3Ap +OyB9CiAgICB2YXIgdGVhbSA9IHsgYWRtaW5zOiBwaWNrKCJhZG1pbiIpLCByZWRha3RldXJlOiBw +aWNrKCJyZWRha3RldXIiKSB9OwogICAgaWYgKEpTT04uc3RyaW5naWZ5KHRlYW0pID09PSBKU09O +LnN0cmluZ2lmeShQLmNvbnRlbnQuc2V0dGluZ3MudGVhbSB8fCBudWxsKSkgcmV0dXJuOyAgIC8v +IHVudmVyYWVuZGVydCAtPiBrZWluIFJlLVB1Ymxpc2gKICAgIFAuY29udGVudC5zZXR0aW5ncy50 +ZWFtID0gdGVhbTsKICAgIGlmIChQLnBlcnNpc3QpIFAucGVyc2lzdCgpOyAgIC8vIHZlcm9lZmZl +bnRsaWNodCBkYXRhLWNvbnRlbnQuanMgKGlua2wuIHNldHRpbmdzLnRlYW0pCiAgfQogIC8vIFNw +ZWljaGVydCBFSU5FIExpc3RlOyBnaWJ0IFByb21pc2U8Ym9vbGVhbj4gKEVyZm9sZykgenVydWVj +ayB1bmQgYmxvY2tpZXJ0IGRpZSBhbmRlcmVuIG5pY2h0LgogIGZ1bmN0aW9uIHNhdmVMaXN0KHdo +aWNoLCBlbnRyaWVzKSB7CiAgICB2YXIgcGZ4ID0gd2hpY2ggPT09ICJwZXJzb25hbCIgPyAiUGVy +c29uZW5zcGVpY2hlcjogIiA6IHdoaWNoID09PSAiYWRtaW4iID8gIkFkbWluLUxpc3RlOiAiIDog +IlJlZGFrdGV1ci1MaXN0ZTogIjsKICAgIHJldHVybiBmZXRjaCgiL2FwaS9hZG1pbi9yb2xlcyIs +IHsgbWV0aG9kOiAiUE9TVCIsIGhlYWRlcnM6IHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlv +bi9qc29uIiB9LCBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGxpc3Q6IHdoaWNoLCBlbnRyaWVzOiBl +bnRyaWVzIH0pIH0pCiAgICAgIC50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKS50 +aGVuKGZ1bmN0aW9uIChqKSB7IHJldHVybiB7IHN0YXR1czogci5zdGF0dXMsIGo6IGogfTsgfSwg +ZnVuY3Rpb24gKCkgeyByZXR1cm4geyBzdGF0dXM6IHIuc3RhdHVzLCBqOiBudWxsIH07IH0pOyB9 +KQogICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5qICYmIHJlcy5q +Lm9rKSByZXR1cm4gdHJ1ZTsKICAgICAgICBQLnRvYXN0KHBmeCArICgocmVzLmogJiYgcmVzLmou +ZXJyb3IpIHx8ICgiU3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2VuICgiICsgcmVzLnN0YXR1cyArICIp +LiIpKSwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9KQogICAgICAuY2F0Y2go +ZnVuY3Rpb24gKCkgeyBQLnRvYXN0KHBmeCArICJTcGVpY2hlcm4gZmVobGdlc2NobGFnZW4gKFZl +cmJpbmR1bmcpLiIsIHRydWUpOyByZXR1cm4gZmFsc2U7IH0pOwogIH0KICBmdW5jdGlvbiByZWxv +YWQoKSB7CiAgICBmZXRjaCgiL2FwaS9hZG1pbi9yb2xlcyIpLnRoZW4oZnVuY3Rpb24gKHIpIHsg +cmV0dXJuIHIuanNvbigpOyB9KS50aGVuKGZ1bmN0aW9uIChqKSB7IGlmIChqICYmIGoub2spIHsg +c3RhdGUgPSBqOyB1c2VycyA9IGJ1aWxkVXNlcnMoc3RhdGUpOyByZW5kZXIoKTsgfSB9KS5jYXRj +aChmdW5jdGlvbiAoKSB7fSk7CiAgfQoKfSkod2luZG93LlApOwo= +### FILE: assets/js/admin/settings.js | 24962 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYWRtaW4vc2V0dGluZ3MuanMKICAg +QWRtaW4tS29uc29sZTogcG9ydGFsd2VpdGUgRWluc3RlbGx1bmdlbiAoUE9SVEFMX1NFVFRJTkdT +KSBiZWFyYmVpdGVuLgogICBEYXRlbmdldHJpZWJlbmUgVGFiLUtvbnNvbGUgKFBoYXNlIDEzIOKA +lCDigJ5hbGxlcyBlaW5zdGVsbGJhciIpOiBqZWRlIFNla3Rpb24KICAgd2lyZCBhdXMgZWluZXIg +UmVnaXN0cnkgZXJ6ZXVndCAoUC5VSV9URVhUUywgUC5ERVNJR05fVE9LRU5TLCBQLlVJX1ZBUlMs +CiAgIFAuTU9EVUxFX1ZBUlMpLiBMaXZlLVZvcnNjaGF1IHVlYmVyIGRpcmVrdGUgRE9NLS88c3R5 +bGU+LVVwZGF0ZXMgYXVmIGRlcgogICBBcmJlaXRza29waWUgUzsgU3BlaWNoZXJuIHNjaHJlaWJ0 +IFAuY29udGVudC5zZXR0aW5ncyArIHZlcm9lZmZlbnRsaWNodC4KICAgU2ljaGVyaGVpdHMtS2Vy +biAoSFRNTC1TYW5pdGl6ZXIsIGNvbnRyYWN0Lmpzb24pIGlzdCBiZXd1c3N0IE5JQ0hUIGVkaXRp +ZXJiYXIuCiAgIE51ciBBZG1pbi4gS2xhc3Npc2NoZXMgPHNjcmlwdD4sIGtlaW5lIEVTLU1vZHVs +ZS4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2 +YXIgZWwgPSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNjYXBlSHRtbDsKCiAg +UC5vcGVuU2V0dGluZ3MgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoUC5yb2xlICE9PSAiYWRtaW4i +KSB7IFAudG9hc3QoIkVpbnN0ZWxsdW5nZW4gc2luZCBBZG1pbnMgdm9yYmVoYWx0ZW4uIik7IHJl +dHVybjsgfQogICAgdmFyIFMgPSBQLmNsb25lKFAuY29udGVudC5zZXR0aW5ncyB8fCBQLmRlZmF1 +bHRTZXR0aW5ncygpKTsKICAgIGlmICghUy5icmFuZGluZykgUy5icmFuZGluZyA9IFAuZGVmYXVs +dFNldHRpbmdzKCkuYnJhbmRpbmc7CiAgICBpZiAoIVMubGFnZVByZXNldHMpIFMubGFnZVByZXNl +dHMgPSBbXTsKICAgIFAubm9ybWFsaXplU2V0dGluZ3MoUyk7CgogICAgdmFyIGFjdGl2ZSA9ICJ0 +ZXh0cyIsIGJyYW5kRXJyID0gbnVsbDsKCiAgICAvKiAtLS0tLS0tLS0tIEJhdXN0ZWluZSAtLS0t +LS0tLS0tICovCiAgICBmdW5jdGlvbiBoZWFkKHBhbmUsIHRpdGxlLCBkZXNjKSB7CiAgICAgIHBh +bmUuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tc2VjaGVhZCIgfSwgWwogICAg +ICAgIGVsKCJoMyIsIHsgdGV4dDogdGl0bGUgfSksCiAgICAgICAgZGVzYyA/IGVsKCJwIiwgeyB0 +ZXh0OiBkZXNjIH0pIDogZWwoInNwYW4iKQogICAgICBdKSk7CiAgICB9CiAgICBmdW5jdGlvbiBn +cm91cEJveChwYW5lLCB0aXRsZSkgewogICAgICB2YXIgZyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi +YWRtLWdyb3VwIiB9KTsKICAgICAgaWYgKHRpdGxlKSBnLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7 +IGNsYXNzOiAiYWRtLWdyb3VwLWgiLCB0ZXh0OiB0aXRsZSB9KSk7CiAgICAgIHBhbmUuYXBwZW5k +Q2hpbGQoZyk7IHJldHVybiBnOwogICAgfQogICAgZnVuY3Rpb24gZmllbGRSb3cobGFiZWwsIGNv +bnRyb2wsIGhpbnQpIHsKICAgICAgdmFyIGtpZHMgPSBbZWwoImxhYmVsIiwgeyB0ZXh0OiBsYWJl +bCB9KSwgY29udHJvbF07CiAgICAgIGlmIChoaW50KSBraWRzLnB1c2goZWwoInNwYW4iLCB7IGNs +YXNzOiAiaGludCIsIHRleHQ6IGhpbnQgfSkpOwogICAgICByZXR1cm4gZWwoImRpdiIsIHsgY2xh +c3M6ICJmaWVsZCIgfSwga2lkcyk7CiAgICB9CiAgICBmdW5jdGlvbiByZXNldEJ0bihsYWJlbCwg +Zm4pIHsKICAgICAgcmV0dXJuIGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFzczog +ImJ0biBnaG9zdCIsIGh0bWw6IGljKCJ4IikgKyAiPHNwYW4+IiArIGVzYyhsYWJlbCkgKyAiPC9z +cGFuPiIsIG9uY2xpY2s6IGZuIH0pOwogICAgfQogICAgZnVuY3Rpb24gcHJldmlld1Rva2Vucygp +IHsgUC5hcHBseU92ZXJyaWRlQ3NzKFMudWkpOyB9CiAgICBmdW5jdGlvbiB0b0hleCh2KSB7IHJl +dHVybiAvXiMoWzAtOWEtZl17M318WzAtOWEtZl17Nn0pJC9pLnRlc3QodikgPyB2IDogIiM4ODg4 +ODgiOyB9CgogICAgLyogLS0tLS0tLS0tLSBTZWt0aW9uOiBCZXNjaHJpZnR1bmdlbiAoQUxMRSBM +YWJlbHMsIGRhdGVuZ2V0cmllYmVuKSAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBwcmV2aWV3 +VGV4dChrZXksIGRlZikgewogICAgICB2YXIgdiA9IChTLnVpLnRleHRzW2tleV0gIT0gbnVsbCAm +JiBTLnVpLnRleHRzW2tleV0gIT09ICIiKSA/IFMudWkudGV4dHNba2V5XSA6IGRlZjsKICAgICAg +Ly8gZHluYW1pc2NoZSBVSV9URVhUUyBtaXQgc2VsCiAgICAgIFAuVUlfVEVYVFMuZm9yRWFjaChm +dW5jdGlvbiAoZCkgeyBpZiAoZC5rZXkgPT09IGtleSAmJiBkLnNlbCkgeyB2YXIgbiA9ICQoZC5z +ZWwpOyBpZiAobikgeyBpZiAoZC5hdHRyKSBuLnNldEF0dHJpYnV0ZShkLmF0dHIsIHYpOyBlbHNl +IG4udGV4dENvbnRlbnQgPSB2OyB9IH0gfSk7CiAgICAgIC8vIHN0YXRpc2NoZSBMYWJlbHMgbWl0 +IGRhdGEtdGtleSAoZWluZSBvZGVyIG1laHJlcmUgU3RlbGxlbikKICAgICAgdmFyIG5vZGVzID0g +ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtdGtleT0iJyArIGtleSArICciXScpOwog +ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7IHZhciBuMiA9IG5v +ZGVzW2ldLCBhID0gbjIuZ2V0QXR0cmlidXRlKCJkYXRhLXRhdHRyIikgfHwgIiI7IGlmIChhKSBu +Mi5zZXRBdHRyaWJ1dGUoYSwgdik7IGVsc2UgbjIudGV4dENvbnRlbnQgPSB2OyB9CiAgICB9CiAg +ICBmdW5jdGlvbiBzZWNUZXh0cyhwYW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIkJlc2NocmlmdHVu +Z2VuIiwgIkFsbGUgc2ljaHRiYXJlbiBUZXh0ZSBkZXIgT2JlcmZsw6RjaGUuIExlZXIgPSBTdGFu +ZGFyZC4iKTsKICAgICAgdmFyIGl0ZW1zID0gUC5hbGxUZXh0cygpOwogICAgICB2YXIgZyA9IGdy +b3VwQm94KHBhbmUsICJUZXh0ZSAoIiArIGl0ZW1zLmxlbmd0aCArICIpIik7IHZhciBncmlkID0g +ZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tZ3JpZDIiIH0pOyBnLmFwcGVuZENoaWxkKGdyaWQpOwog +ICAgICBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7CiAgICAgICAgdmFyIGlucCA9IGVsKCJp +bnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogUy51aS50ZXh0c1tkLmtleV0gfHwgIiIsIHBs +YWNlaG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyBkLmRlZiwKICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0 +aW9uICgpIHsgdmFyIHYgPSB0aGlzLnZhbHVlOyBpZiAodiAhPT0gIiIpIFMudWkudGV4dHNbZC5r +ZXldID0gdjsgZWxzZSBkZWxldGUgUy51aS50ZXh0c1tkLmtleV07IHByZXZpZXdUZXh0KGQua2V5 +LCBkLmRlZik7IH0gfSk7CiAgICAgICAgZ3JpZC5hcHBlbmRDaGlsZChmaWVsZFJvdyhkLmxhYmVs +LCBpbnApKTsKICAgICAgfSk7CiAgICAgIGcuYXBwZW5kQ2hpbGQocmVzZXRCdG4oIlRleHRlIHp1 +csO8Y2tzZXR6ZW4iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgUy51aS50ZXh0cyA9IHt9OyBpdGVt +cy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7IHByZXZpZXdUZXh0KGQua2V5LCBkLmRlZik7IH0pOyBy +ZW5kZXJQYW5lKCk7CiAgICAgIH0pKTsKICAgIH0KCiAgICAvKiAtLS0tLS0tLS0tIFNla3Rpb246 +IE1hcmtlICYgTG9nbyAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBwcmV2aWV3QnJhbmQoc3cp +IHsKICAgICAgdmFyIHYgPSBTLmJyYW5kaW5nLmJyYW5kQ29sb3IsIHJvb3QgPSBkb2N1bWVudC5k +b2N1bWVudEVsZW1lbnQuc3R5bGU7CiAgICAgIGlmICh2KSB7CiAgICAgICAgcm9vdC5zZXRQcm9w +ZXJ0eSgiLS1icmFuZCIsIHYpOwogICAgICAgIHJvb3Quc2V0UHJvcGVydHkoIi0tYnJhbmQtMiIs +IFMuYnJhbmRpbmcuYnJhbmRDb2xvcjIgfHwgKCJjb2xvci1taXgoaW4gb2tsY2gsICIgKyB2ICsg +IiA4MiUsIGJsYWNrKSIpKTsKICAgICAgICByb290LnNldFByb3BlcnR5KCItLWhlYWRlci1iZyIs +ICJsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBjb2xvci1taXgoaW4gb2tsY2gsICIgKyB2ICsgIiA0 +MiUsIGJsYWNrKSwgY29sb3ItbWl4KGluIG9rbGNoLCAiICsgdiArICIgMjYlLCBibGFjaykpIik7 +CiAgICAgIH0gZWxzZSB7IFAuYXBwbHlCcmFuZENvbG9ycygpOyB9CiAgICAgIGlmIChzdykgc3cu +c3R5bGUuYmFja2dyb3VuZCA9IHYgfHwgInZhcigtLWJyYW5kKSI7CiAgICB9CiAgICBmdW5jdGlv +biBzZWNCcmFuZChwYW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIk1hcmtlICYgTG9nbyIsICJOYW1l +LCBVbnRlcnRpdGVsLCBNYXJrZW5mYXJiZSB1bmQgTG9nby4iKTsKICAgICAgdmFyIGcgPSBncm91 +cEJveChwYW5lLCAiQmVzY2hyaWZ0dW5nIik7CiAgICAgIGZ1bmN0aW9uIGJGaWVsZChsYWJlbCwg +a2V5KSB7CiAgICAgICAgdmFyIGlucCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1 +ZTogUy5icmFuZGluZ1trZXldIHx8ICIiLAogICAgICAgICAgb25pbnB1dDogZnVuY3Rpb24gKCkg +eyBTLmJyYW5kaW5nW2tleV0gPSB0aGlzLnZhbHVlOyBpZiAoa2V5ID09PSAiYnJhbmROYW1lIikg +eyB2YXIgYm4gPSAkKCIuYnJhbmQtbmFtZSBiIik7IGlmIChibikgYm4udGV4dENvbnRlbnQgPSB0 +aGlzLnZhbHVlOyB9IGlmIChrZXkgPT09ICJicmFuZFN1YnRpdGxlIikgeyB2YXIgYnMgPSAkKCIu +YnJhbmQtbmFtZSBzcGFuIik7IGlmIChicykgYnMudGV4dENvbnRlbnQgPSB0aGlzLnZhbHVlOyB9 +IH0gfSk7CiAgICAgICAgZy5hcHBlbmRDaGlsZChmaWVsZFJvdyhsYWJlbCwgaW5wKSk7CiAgICAg +IH0KICAgICAgYkZpZWxkKCJCcm93c2VyLS9QREYtVGl0ZWwiLCAicG9ydGFsVGl0bGUiKTsKICAg +ICAgYkZpZWxkKCJNYXJrZW5uYW1lIChLb3BmemVpbGUpIiwgImJyYW5kTmFtZSIpOwogICAgICBi +RmllbGQoIlVudGVydGl0ZWwiLCAiYnJhbmRTdWJ0aXRsZSIpOwogICAgICBiRmllbGQoIlBERi1E +cnVja2Z1w58iLCAicHJpbnRGb290ZXIiKTsKICAgICAgYnJhbmRFcnIgPSBlbCgiZGl2IiwgeyBj +bGFzczogImVyciIsIGhpZGRlbjogImhpZGRlbiIgfSk7IGcuYXBwZW5kQ2hpbGQoYnJhbmRFcnIp +OwoKICAgICAgdmFyIGdjID0gZ3JvdXBCb3gocGFuZSwgIk1hcmtlbmZhcmJlIChDRCkiKTsKICAg +ICAgdmFyIHN3ID0gZWwoInNwYW4iLCB7IGNsYXNzOiAiY2F0LXN3YXRjaCIsIHN0eWxlOiAiYmFj +a2dyb3VuZDoiICsgKFMuYnJhbmRpbmcuYnJhbmRDb2xvciB8fCAidmFyKC0tYnJhbmQpIikgfSk7 +CiAgICAgIHZhciBjb2xvckluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiBT +LmJyYW5kaW5nLmJyYW5kQ29sb3IgfHwgIiIsIHBsYWNlaG9sZGVyOiAibGVlciA9IFN0YW5kYXJk +IMK3IHouIEIuICMxNDUyOWIgb2RlciBva2xjaCgwLjUgMC4xMyAyNTIpIiwKICAgICAgICBvbmlu +cHV0OiBmdW5jdGlvbiAoKSB7IFMuYnJhbmRpbmcuYnJhbmRDb2xvciA9IHRoaXMudmFsdWUudHJp +bSgpOyBwcmV2aWV3QnJhbmQoc3cpOyB9IH0pOwogICAgICBnYy5hcHBlbmRDaGlsZChlbCgiZGl2 +IiwgeyBjbGFzczogImZpZWxkIiB9LCBbZWwoImxhYmVsIiwgeyB0ZXh0OiAiTWFya2VuZmFyYmUi +IH0pLCBlbCgiZGl2IiwgeyBjbGFzczogInNldC1jb2xvciIgfSwgW3N3LCBjb2xvckluXSldKSk7 +CiAgICAgIGdjLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImhpbnQiLCB0ZXh0OiAi +RXhha3RlbiBCZWjDtnJkZW4tQ0QtRmFyYndlcnQgaGllciBlaW50cmFnZW4uIEhhdCBWb3JyYW5n +IHZvciBkZW0gLS1icmFuZC1GYXJidG9rZW4uIiB9KSk7CgogICAgICB2YXIgZ2wgPSBncm91cEJv +eChwYW5lLCAiTG9nbyIpOwogICAgICB2YXIgbG9nb1ByZXYgPSBlbCgiaW1nIiwgeyBjbGFzczog +InNldC1sb2dvLXByZXYiLCBhbHQ6ICIiLCBzcmM6IFMuYnJhbmRpbmcubG9nb1VybCB8fCAiYXNz +ZXRzL2ltZy9wb2xpemVpc3Rlcm4ucG5nIiB9KTsKICAgICAgdmFyIGxvZ29JbiA9IGVsKCJpbnB1 +dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogUy5icmFuZGluZy5sb2dvVXJsIHx8ICIiLCBwbGFj +ZWhvbGRlcjogImxlZXIgPSBTdGFuZGFyZCAoYXNzZXRzL2ltZy9wb2xpemVpc3Rlcm4ucG5nKSIs +CiAgICAgICAgb25pbnB1dDogZnVuY3Rpb24gKCkgeyBTLmJyYW5kaW5nLmxvZ29VcmwgPSB0aGlz +LnZhbHVlLnRyaW0oKTsgbG9nb1ByZXYuc3JjID0gUy5icmFuZGluZy5sb2dvVXJsIHx8ICJhc3Nl +dHMvaW1nL3BvbGl6ZWlzdGVybi5wbmciOyB9IH0pOwogICAgICB2YXIgdXAgPSBlbCgiYnV0dG9u +IiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJidG4gZ2hvc3QiLCBodG1sOiBpYygidXBsb2Fk +IikgKyAiPHNwYW4+IEhvY2hsYWRlbuKApjwvc3Bhbj4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0 +aW9uICgpIHsKICAgICAgICAgIHZhciBmaSA9IGVsKCJpbnB1dCIsIHsgdHlwZTogImZpbGUiLCBh +Y2NlcHQ6ICJpbWFnZS8qIiwgc3R5bGU6ICJkaXNwbGF5Om5vbmUiLAogICAgICAgICAgICBvbmNo +YW5nZTogZnVuY3Rpb24gKCkgeyB2YXIgZiA9IHRoaXMuZmlsZXMgJiYgdGhpcy5maWxlc1swXTsg +aWYgKCFmKSByZXR1cm47IHVwLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBQLnVwbG9h +ZEFzc2V0KGYsIGZ1bmN0aW9uIChlMiwgcmVzKSB7IHVwLmRpc2FibGVkID0gZmFsc2U7IGlmIChl +MiB8fCAhcmVzIHx8ICFyZXMub2spIHsgUC50b2FzdCgiTG9nby1VcGxvYWQgZmVobGdlc2NobGFn +ZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgICAgICAgICAgUy5icmFuZGluZy5sb2dvVXJs +ID0gcmVzLnBhdGg7IGxvZ29Jbi52YWx1ZSA9IHJlcy5wYXRoOyBsb2dvUHJldi5zcmMgPSByZXMu +cGF0aDsgUC50b2FzdCgiTG9nbyBob2NoZ2VsYWRlbi4iKTsgfSk7IH0gfSk7CiAgICAgICAgICBk +b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpKTsgZmkuY2xpY2soKTsgc2V0VGltZW91dChmdW5j +dGlvbiAoKSB7IGZpLnJlbW92ZSgpOyB9LCAwKTsKICAgICAgICB9IH0pOwogICAgICBnbC5hcHBl +bmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImZpZWxkIiB9LCBbZWwoImxhYmVsIiwgeyB0ZXh0 +OiAiTG9nbyIgfSksIGVsKCJkaXYiLCB7IGNsYXNzOiAic2V0LWxvZ28iIH0sIFtsb2dvUHJldiwg +bG9nb0luLCB1cF0pXSkpOwogICAgfQoKICAgIC8qIC0tLS0tLS0tLS0gU2VrdGlvbjogTGFnZS1W +b3JsYWdlbiAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBzZWNMYWdlKHBhbmUpIHsKICAgICAg +aGVhZChwYW5lLCAiTGFnZS1Wb3JsYWdlbiIsICJTY2huZWxsIHfDpGhsYmFyZSBMYWdldGV4dGUg +KG1pdCBTdHVmZSkuIik7CiAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFuZSwgIlZvcmxhZ2VuIik7 +CiAgICAgIHZhciBob3N0UCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAic2V0LXByZXNldHMiIH0pOwog +ICAgICBmdW5jdGlvbiByZW5kZXJQcmVzZXRzKCkgewogICAgICAgIGhvc3RQLmlubmVySFRNTCA9 +ICIiOwogICAgICAgIFMubGFnZVByZXNldHMuZm9yRWFjaChmdW5jdGlvbiAocCwgaSkgewogICAg +ICAgICAgdmFyIHR4dCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogcC50ZXh0 +IHx8ICIiLCBwbGFjZWhvbGRlcjogIkxhZ2UtVGV4dCIsIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsg +Uy5sYWdlUHJlc2V0c1tpXS50ZXh0ID0gdGhpcy52YWx1ZTsgfSB9KTsKICAgICAgICAgIHZhciBs +dmwgPSBlbCgic2VsZWN0IiwgeyBvbmNoYW5nZTogZnVuY3Rpb24gKCkgeyBTLmxhZ2VQcmVzZXRz +W2ldLmxldmVsID0gdGhpcy52YWx1ZTsgfSB9KTsKICAgICAgICAgIGx2bC5hcHBlbmRDaGlsZChl +bCgib3B0aW9uIiwgeyB2YWx1ZTogIm9rIiwgdGV4dDogIm5vcm1hbCIsIHNlbGVjdGVkOiBwLmxl +dmVsICE9PSAiYWxlcnQiID8gInNlbGVjdGVkIiA6IG51bGwgfSkpOwogICAgICAgICAgbHZsLmFw +cGVuZENoaWxkKGVsKCJvcHRpb24iLCB7IHZhbHVlOiAiYWxlcnQiLCB0ZXh0OiAiQWxhcm0iLCBz +ZWxlY3RlZDogcC5sZXZlbCA9PT0gImFsZXJ0IiA/ICJzZWxlY3RlZCIgOiBudWxsIH0pKTsKICAg +ICAgICAgIHZhciBkZWwgPSBlbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJt +aW5pLWJ0biIsIHRpdGxlOiAiVm9ybGFnZSBlbnRmZXJuZW4iLCBodG1sOiBpYygidHJhc2giKSwg +b25jbGljazogZnVuY3Rpb24gKCkgeyBTLmxhZ2VQcmVzZXRzLnNwbGljZShpLCAxKTsgcmVuZGVy +UHJlc2V0cygpOyB9IH0pOwogICAgICAgICAgaG9zdFAuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg +Y2xhc3M6ICJzZXQtcHJlc2V0LXJvdyIgfSwgW3R4dCwgbHZsLCBkZWxdKSk7CiAgICAgICAgfSk7 +CiAgICAgIH0KICAgICAgcmVuZGVyUHJlc2V0cygpOyBnLmFwcGVuZENoaWxkKGhvc3RQKTsKICAg +ICAgZy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJi +dG4gZ2hvc3QgYWRkLXJvdyIsIGh0bWw6IGljKCJwbHVzIikgKyAiPHNwYW4+IFZvcmxhZ2U8L3Nw +YW4+IiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFMubGFnZVByZXNldHMucHVzaCh7 +IHRleHQ6ICIiLCBsZXZlbDogIm9rIiB9KTsgcmVuZGVyUHJlc2V0cygpOyB9IH0pKTsKICAgIH0K +CiAgICAvKiAtLS0tLS0tLS0tIFNla3Rpb246IEZhcmJlbiAocHJvIFRoZW1lKSAtLS0tLS0tLS0t +ICovCiAgICBmdW5jdGlvbiBjb2xvckZpZWxkKHQsIHN0b3JlKSB7CiAgICAgIHZhciBoZXggPSBl +bCgiaW5wdXQiLCB7IHR5cGU6ICJjb2xvciIsIHZhbHVlOiB0b0hleChzdG9yZVt0LmtleV0gfHwg +dC5kZWYpIH0pOwogICAgICB2YXIgdHh0ID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZh +bHVlOiBzdG9yZVt0LmtleV0gfHwgIiIsIHBsYWNlaG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyB0LmRl +ZiB9KTsKICAgICAgZnVuY3Rpb24gc2V0KHYpIHsgdiA9ICh2IHx8ICIiKS50cmltKCk7IGlmICh2 +KSBzdG9yZVt0LmtleV0gPSB2OyBlbHNlIGRlbGV0ZSBzdG9yZVt0LmtleV07IHByZXZpZXdUb2tl +bnMoKTsgfQogICAgICBoZXgub25pbnB1dCA9IGZ1bmN0aW9uICgpIHsgdHh0LnZhbHVlID0gdGhp +cy52YWx1ZTsgc2V0KHRoaXMudmFsdWUpOyB9OwogICAgICB0eHQub25pbnB1dCA9IGZ1bmN0aW9u +ICgpIHsgdmFyIHYgPSB0aGlzLnZhbHVlLnRyaW0oKTsgaWYgKC9eIyhbMC05YS1mXXszfXxbMC05 +YS1mXXs2fSkkL2kudGVzdCh2KSkgaGV4LnZhbHVlID0gdjsgc2V0KHYpOyB9OwogICAgICByZXR1 +cm4gZmllbGRSb3codC5sYWJlbCwgZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tY29sb3IiIH0sIFto +ZXgsIHR4dF0pKTsKICAgIH0KICAgIGZ1bmN0aW9uIHNlY0NvbG9ycyh0aGVtZSkgewogICAgICBy +ZXR1cm4gZnVuY3Rpb24gKHBhbmUpIHsKICAgICAgICBoZWFkKHBhbmUsIHRoZW1lID09PSAibGln +aHQiID8gIkZhcmJlbiAoSGVsbCkiIDogIkZhcmJlbiAoRHVua2VsKSIsCiAgICAgICAgICAiRmFy +YnBhbGV0dGUgZsO8ciBkYXMgIiArICh0aGVtZSA9PT0gImxpZ2h0IiA/ICJoZWxsZSIgOiAiZHVu +a2xlIikgKyAiIFRoZW1lLiBMZWVyID0gU3RhbmRhcmQuIik7CiAgICAgICAgdmFyIGN1clRoZW1l +ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10aGVtZSIpIHx8 +ICJsaWdodCI7CiAgICAgICAgaWYgKGN1clRoZW1lICE9PSB0aGVtZSkgewogICAgICAgICAgdmFy +IG5vdGUgPSBlbCgiZGl2IiwgeyBjbGFzczogImFkbS1ub3RlIiB9KTsKICAgICAgICAgIG5vdGUu +YXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGh0bWw6IGljKCJhbGVydCIpIH0pKTsKICAgICAgICAg +IHZhciBib3ggPSBlbCgiZGl2Iik7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZG9jdW1lbnQu +Y3JlYXRlVGV4dE5vZGUoIlZvcnNjaGF1IG51ciBzaWNodGJhciwgd2VubiBkYXMgIiArICh0aGVt +ZSA9PT0gImxpZ2h0IiA/ICJoZWxsZSIgOiAiZHVua2xlIikgKyAiIFRoZW1lIGFrdGl2IGlzdC4i +KSk7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHt9LCBbZWwoImJ1dHRvbiIs +IHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAiYnRuIGdob3N0Iiwgc3R5bGU6ICJtYXJnaW4tdG9w +OjhweCIsCiAgICAgICAgICAgIGh0bWw6IGljKHRoZW1lID09PSAibGlnaHQiID8gInN1biIgOiAi +bW9vbiIpICsgIjxzcGFuPiBadSAiICsgKHRoZW1lID09PSAibGlnaHQiID8gIkhlbGwiIDogIkR1 +bmtlbCIpICsgIiB3ZWNoc2Vsbjwvc3Bhbj4iLAogICAgICAgICAgICBvbmNsaWNrOiBmdW5jdGlv +biAoKSB7IFAud3JpdGUoUC5MUy50aGVtZSwgdGhlbWUpOyBQLmFwcGx5VGhlbWUodGhlbWUpOyBy +ZW5kZXJQYW5lKCk7IH0gfSldKSk7CiAgICAgICAgICBub3RlLmFwcGVuZENoaWxkKGJveCk7IHBh +bmUuYXBwZW5kQ2hpbGQobm90ZSk7CiAgICAgICAgfQogICAgICAgIHZhciBzdG9yZSA9IFMudWku +Y29sb3JzW3RoZW1lXTsKICAgICAgICB2YXIgZyA9IGdyb3VwQm94KHBhbmUsICJGYXJiLVRva2Vu +cyIpOyB2YXIgZ3JpZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYWRtLWdyaWQyIiB9KTsgZy5hcHBl +bmRDaGlsZChncmlkKTsKICAgICAgICBQLkRFU0lHTl9UT0tFTlMuZmlsdGVyKGZ1bmN0aW9uICh0 +KSB7IHJldHVybiB0LnRoZW1lID09PSB0aGVtZTsgfSkuZm9yRWFjaChmdW5jdGlvbiAodCkgeyBn +cmlkLmFwcGVuZENoaWxkKGNvbG9yRmllbGQodCwgc3RvcmUpKTsgfSk7CiAgICAgICAgZy5hcHBl +bmRDaGlsZChyZXNldEJ0bigiRmFyYmVuICgiICsgKHRoZW1lID09PSAibGlnaHQiID8gIkhlbGwi +IDogIkR1bmtlbCIpICsgIikgenVyw7xja3NldHplbiIsIGZ1bmN0aW9uICgpIHsgUy51aS5jb2xv +cnNbdGhlbWVdID0ge307IHByZXZpZXdUb2tlbnMoKTsgcmVuZGVyUGFuZSgpOyB9KSk7CiAgICAg +IH07CiAgICB9CgogICAgLyogLS0tLS0tLS0tLSBTZWt0aW9uOiBUb2tlbi1HcnVwcGUgKFR5cG8g +LyBCZXdlZ3VuZykgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24gbGVuRmllbGQodCkgewogICAg +ICB2YXIgaW5wID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiBTLnVpLnRva2Vu +c1t0LmtleV0gfHwgIiIsIHBsYWNlaG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyB0LmRlZiArICh0LnVu +aXQgfHwgIiIpLAogICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgdmFyIHYgPSB0aGlzLnZh +bHVlLnRyaW0oKTsgaWYgKHYpIFMudWkudG9rZW5zW3Qua2V5XSA9IHY7IGVsc2UgZGVsZXRlIFMu +dWkudG9rZW5zW3Qua2V5XTsgcHJldmlld1Rva2VucygpOyB9IH0pOwogICAgICByZXR1cm4gZmll +bGRSb3codC5sYWJlbCArICh0LnVuaXQgPyAiICgiICsgdC51bml0ICsgIikiIDogIiIpLCBpbnAp +OwogICAgfQogICAgZnVuY3Rpb24gc2VjVG9rZW5zKGdyb3VwLCB0aXRsZSwgZGVzYywgaGludCkg +ewogICAgICByZXR1cm4gZnVuY3Rpb24gKHBhbmUpIHsKICAgICAgICBoZWFkKHBhbmUsIHRpdGxl +LCBkZXNjKTsKICAgICAgICBpZiAoaGludCkgcGFuZS5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBj +bGFzczogImFkbS1ub3RlIiB9LCBbZWwoInNwYW4iLCB7IGh0bWw6IGljKCJhbGVydCIpIH0pLCBl +bCgiZGl2IiwgeyB0ZXh0OiBoaW50IH0pXSkpOwogICAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFu +ZSwgdGl0bGUpOyB2YXIgZ3JpZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYWRtLWdyaWQyIiB9KTsg +Zy5hcHBlbmRDaGlsZChncmlkKTsKICAgICAgICBQLkRFU0lHTl9UT0tFTlMuZmlsdGVyKGZ1bmN0 +aW9uICh0KSB7IHJldHVybiB0Lmdyb3VwID09PSBncm91cDsgfSkuZm9yRWFjaChmdW5jdGlvbiAo +dCkgeyBncmlkLmFwcGVuZENoaWxkKGxlbkZpZWxkKHQpKTsgfSk7CiAgICAgICAgZy5hcHBlbmRD +aGlsZChyZXNldEJ0bigiWnVyw7xja3NldHplbiIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIFAu +REVTSUdOX1RPS0VOUy5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7IGlmICh0Lmdyb3VwID09PSBncm91 +cCkgZGVsZXRlIFMudWkudG9rZW5zW3Qua2V5XTsgfSk7CiAgICAgICAgICBwcmV2aWV3VG9rZW5z +KCk7IHJlbmRlclBhbmUoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CgogICAgLyogLS0t +LS0tLS0tLSBTZWt0aW9uOiBMYXlvdXQgJiBBYnN0w6RuZGUgKFVJX1ZBUlMgKyBEaWNodGUgKyBB +YnN0YW5kLVRva2VucykgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24gc2VjTGF5b3V0KHBhbmUp +IHsKICAgICAgaGVhZChwYW5lLCAiTGF5b3V0ICYgQWJzdMOkbmRlIiwgIlNwYWx0ZW5icmVpdGVu +LCBIw7ZoZW4sIEVjay1SdW5kdW5nLCBEaWNodGUgdW5kIEFic3TDpG5kZS4gTGVlciA9IFN0YW5k +YXJkLiIpOwogICAgICB2YXIgZyA9IGdyb3VwQm94KHBhbmUsICJEaWNodGUgJiBHcsO2w59lbiIp +OwogICAgICB2YXIgZGVuc1NlZyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAic2VnIiB9KTsKICAgICAg +W1siY29tcGFjdCIsICJLb21wYWt0Il0sIFsiIiwgIkF1c2dld29nZW4iXSwgWyJjb21mb3J0YWJs +ZSIsICJLb21mb3J0YWJlbCJdXS5mb3JFYWNoKGZ1bmN0aW9uIChwYWlyKSB7CiAgICAgICAgdmFy +IHZhbCA9IHBhaXJbMF0sIGN1ciA9IFMudWkuZGVuc2l0eSB8fCAiIjsKICAgICAgICBkZW5zU2Vn +LmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFzczogInNlZy1v +cHQiICsgKGN1ciA9PT0gdmFsID8gIiBzZWwiIDogIiIpLCB0ZXh0OiBwYWlyWzFdLAogICAgICAg +ICAgb25jbGljazogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodmFsKSBTLnVpLmRlbnNp +dHkgPSB2YWw7IGVsc2UgZGVsZXRlIFMudWkuZGVuc2l0eTsKICAgICAgICAgICAgUC4kJCgiLnNl +Zy1vcHQiLCBkZW5zU2VnKS5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7IGIuY2xhc3NMaXN0LnJlbW92 +ZSgic2VsIik7IH0pOyB0aGlzLmNsYXNzTGlzdC5hZGQoInNlbCIpOwogICAgICAgICAgICB2YXIg +cm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsgaWYgKHZhbCkgcm9vdC5zZXRBdHRyaWJ1 +dGUoImRhdGEtZGVuc2l0eSIsIHZhbCk7IGVsc2Ugcm9vdC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEt +ZGVuc2l0eSIpOwogICAgICAgICAgfSB9KSk7CiAgICAgIH0pOwogICAgICBnLmFwcGVuZENoaWxk +KGZpZWxkUm93KCJEaWNodGUiLCBkZW5zU2VnKSk7CiAgICAgIHZhciBncmlkID0gZWwoImRpdiIs +IHsgY2xhc3M6ICJhZG0tZ3JpZDIiIH0pOyBnLmFwcGVuZENoaWxkKGdyaWQpOwogICAgICAoUC5V +SV9WQVJTIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChmKSB7CiAgICAgICAgdmFyIGlucCA9IGVs +KCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogUy51aVtmLmtleV0gfHwgIiIsIHBsYWNl +aG9sZGVyOiAiU3RhbmRhcmQ6ICIgKyBmLmRlZiArIChmLnVuaXQgfHwgIiIpLAogICAgICAgICAg +b25pbnB1dDogZnVuY3Rpb24gKCkgeyB2YXIgdiA9IHRoaXMudmFsdWUudHJpbSgpOyBpZiAodikg +Uy51aVtmLmtleV0gPSB2OyBlbHNlIGRlbGV0ZSBTLnVpW2Yua2V5XTsKICAgICAgICAgICAgdmFy +IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGU7IGlmICh2KSByb290LnNldFBy +b3BlcnR5KGYuY3NzVmFyLCB2ICsgKGYudW5pdCB8fCAiIikpOyBlbHNlIHJvb3QucmVtb3ZlUHJv +cGVydHkoZi5jc3NWYXIpOyB9IH0pOwogICAgICAgIGdyaWQuYXBwZW5kQ2hpbGQoZmllbGRSb3co +Zi5sYWJlbCArIChmLnVuaXQgPyAiICgiICsgZi51bml0ICsgIikiIDogIiIpLCBpbnAsIGYuaGlu +dCkpOwogICAgICB9KTsKICAgICAgdmFyIGdhID0gZ3JvdXBCb3gocGFuZSwgIkFic3TDpG5kZSIp +OyB2YXIgZ3JpZDIgPSBlbCgiZGl2IiwgeyBjbGFzczogImFkbS1ncmlkMiIgfSk7IGdhLmFwcGVu +ZENoaWxkKGdyaWQyKTsKICAgICAgUC5ERVNJR05fVE9LRU5TLmZpbHRlcihmdW5jdGlvbiAodCkg +eyByZXR1cm4gdC5ncm91cCA9PT0gImFic3RhbmQiOyB9KS5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7 +IGdyaWQyLmFwcGVuZENoaWxkKGxlbkZpZWxkKHQpKTsgfSk7CiAgICAgIGcuYXBwZW5kQ2hpbGQo +cmVzZXRCdG4oIkxheW91dCB6dXLDvGNrc2V0emVuIiwgZnVuY3Rpb24gKCkgewogICAgICAgIHZh +ciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlOwogICAgICAgIChQLlVJX1ZB +UlMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGYpIHsgZGVsZXRlIFMudWlbZi5rZXldOyByb290 +LnJlbW92ZVByb3BlcnR5KGYuY3NzVmFyKTsgfSk7CiAgICAgICAgUC5ERVNJR05fVE9LRU5TLmZv +ckVhY2goZnVuY3Rpb24gKHQpIHsgaWYgKHQuZ3JvdXAgPT09ICJhYnN0YW5kIikgZGVsZXRlIFMu +dWkudG9rZW5zW3Qua2V5XTsgfSk7CiAgICAgICAgZGVsZXRlIFMudWkuZGVuc2l0eTsgZG9jdW1l +bnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1kZW5zaXR5Iik7IHByZXZp +ZXdUb2tlbnMoKTsgcmVuZGVyUGFuZSgpOwogICAgICB9KSk7CiAgICB9CgogICAgLyogLS0tLS0t +LS0tLSBTZWt0aW9uOiBNb2R1bGUgJiBMaW1pdHMgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24g +c2VjTW9kdWxlcyhwYW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIk1vZHVsZSAmIExpbWl0cyIsICJT +aWNodGJhcmtlaXQgdm9uIENvY2twaXQtV2lkZ2V0cyB1bmQgTWF4aW1hbHphaGxlbi4gR3JlaWZl +biBuYWNoIGRlbSBTcGVpY2hlcm4uIik7CiAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFuZSwgIkVp +bnN0ZWxsdW5nZW4iKTsKICAgICAgUC5NT0RVTEVfVkFSUy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7 +CiAgICAgICAgdmFyIGN0cmw7CiAgICAgICAgaWYgKGQudHlwZSA9PT0gImJvb2wiKSB7CiAgICAg +ICAgICB2YXIgY3VyID0gKFMudWkubW9kdWxlc1tkLmtleV0gIT0gbnVsbCkgPyAoUy51aS5tb2R1 +bGVzW2Qua2V5XSA9PT0gdHJ1ZSB8fCBTLnVpLm1vZHVsZXNbZC5rZXldID09PSAidHJ1ZSIpIDog +ZC5kZWY7CiAgICAgICAgICBjdHJsID0gZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1dHRvbiIsIGNs +YXNzOiAic3dpdGNoIiArIChjdXIgPyAiIG9uIiA6ICIiKSwgcm9sZTogInN3aXRjaCIsICJhcmlh +LWNoZWNrZWQiOiBjdXIgPyAidHJ1ZSIgOiAiZmFsc2UiLAogICAgICAgICAgICBvbmNsaWNrOiBm +dW5jdGlvbiAoKSB7IGN1ciA9ICFjdXI7IHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgib24iLCBjdXIp +OyB0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIiwgY3VyID8gInRydWUiIDogImZhbHNl +Iik7CiAgICAgICAgICAgICAgaWYgKGN1ciA9PT0gZC5kZWYpIGRlbGV0ZSBTLnVpLm1vZHVsZXNb +ZC5rZXldOyBlbHNlIFMudWkubW9kdWxlc1tkLmtleV0gPSBjdXI7IH0gfSk7CiAgICAgICAgICBn +LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAidG9nZ2xlLXJvdyIgfSwgW2N0cmwsIGVs +KCJsYWJlbCIsIHsgdGV4dDogZC5sYWJlbCwgc3R5bGU6ICJmb250LXdlaWdodDo2MDA7Y29sb3I6 +dmFyKC0tdGV4dC1kaW0pIiB9KV0pKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY3RybCA9 +IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogKFMudWkubW9kdWxlc1tkLmtleV0g +IT0gbnVsbCA/IFMudWkubW9kdWxlc1tkLmtleV0gOiAiIiksIHBsYWNlaG9sZGVyOiAiU3RhbmRh +cmQ6ICIgKyBkLmRlZiwKICAgICAgICAgICAgb25pbnB1dDogZnVuY3Rpb24gKCkgeyB2YXIgdiA9 +IHRoaXMudmFsdWUudHJpbSgpOyBpZiAodiA9PT0gIiIpIGRlbGV0ZSBTLnVpLm1vZHVsZXNbZC5r +ZXldOyBlbHNlIFMudWkubW9kdWxlc1tkLmtleV0gPSB2OyB9IH0pOwogICAgICAgICAgZy5hcHBl +bmRDaGlsZChmaWVsZFJvdyhkLmxhYmVsLCBjdHJsKSk7CiAgICAgICAgfQogICAgICB9KTsKICAg +ICAgZy5hcHBlbmRDaGlsZChyZXNldEJ0bigiTW9kdWxlIHp1csO8Y2tzZXR6ZW4iLCBmdW5jdGlv +biAoKSB7IFMudWkubW9kdWxlcyA9IHt9OyByZW5kZXJQYW5lKCk7IH0pKTsKICAgIH0KCiAgICAv +KiAtLS0tLS0tLS0tIFNla3Rpb246IEFsbGdlbWVpbiAoVGhlbWUtRGVmYXVsdCArIFNpY2hlcmhl +aXRzLVNwZXJyaGlud2VpcykgLS0tLS0tLS0tLSAqLwogICAgZnVuY3Rpb24gc2VjR2VuZXJhbChw +YW5lKSB7CiAgICAgIGhlYWQocGFuZSwgIkFsbGdlbWVpbiIsICJTdGFuZGFyZC1EZXNpZ24gdW5k +IFNpY2hlcmhlaXRzaGlud2Vpc2UuIik7CiAgICAgIHZhciBnID0gZ3JvdXBCb3gocGFuZSwgIlN0 +YW5kYXJkLURlc2lnbiAocG9ydGFsd2VpdCkiKTsKICAgICAgdmFyIHNlZyA9IGVsKCJkaXYiLCB7 +IGNsYXNzOiAic2VnIiB9KTsKICAgICAgW1siZGFyayIsICJEdW5rZWwiXSwgWyJsaWdodCIsICJI +ZWxsIl1dLmZvckVhY2goZnVuY3Rpb24gKHBhaXIpIHsKICAgICAgICBzZWcuYXBwZW5kQ2hpbGQo +ZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAic2VnLW9wdCIgKyAoUy5kZWZh +dWx0VGhlbWUgPT09IHBhaXJbMF0gPyAiIHNlbCIgOiAiIiksIHRleHQ6IHBhaXJbMV0sCiAgICAg +ICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFMuZGVmYXVsdFRoZW1lID0gcGFpclswXTsgUC4k +JCgiLnNlZy1vcHQiLCBzZWcpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsgYi5jbGFzc0xpc3QucmVt +b3ZlKCJzZWwiKTsgfSk7IHRoaXMuY2xhc3NMaXN0LmFkZCgic2VsIik7IH0gfSkpOwogICAgICB9 +KTsKICAgICAgZy5hcHBlbmRDaGlsZChmaWVsZFJvdygiU3RhbmRhcmQiLCBzZWcsICJTdGFuZGFy +ZCBmw7xyIG5ldWUgQmVzdWNoZXIuIERpZSBwZXJzw7ZubGljaGUgV2FobCBqZWRlcyBOdXR6ZXJz +IGJsZWlidCB2b3JyYW5naWcuIikpOwoKICAgICAgdmFyIGxvY2sgPSBlbCgiZGl2IiwgeyBjbGFz +czogImFkbS1ub3RlIiB9KTsKICAgICAgbG9jay5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgaHRt +bDogaWMoInNoaWVsZCIpIH0pKTsKICAgICAgbG9jay5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBo +dG1sOgogICAgICAgICI8Yj5CZXd1c3N0IGdlc3BlcnJ0IChTaWNoZXJoZWl0cy1LZXJuKTo8L2I+ +IERlciBIVE1MLVNhbml0aXplciAoWFNTLVNjaHV0eiBmw7xyIExlc2VyLCBpbiAiICsKICAgICAg +ICAiPGNvZGU+ZmVhdHVyZXMvbmF2LmpzPC9jb2RlPikgdW5kIGRpZSBTZXJ2ZXItUG9saWN5IDxj +b2RlPmhlbGZlci9jb250cmFjdC5qc29uPC9jb2RlPiAiICsKICAgICAgICAiKFB1Ymxpc2gtQWxs +b3dsaXN0LCBBc3NldC1MaW1pdCwgUm9sbGVuLUVuZHBvaW50cywgSGlzdG9yeS1QcnVuaW5nLCBD +U1JGKSBzaW5kIGFic2ljaHRsaWNoICIgKwogICAgICAgICJuaWNodCDDvGJlciBkaWUgT2JlcmZs +w6RjaGUgZWRpdGllcmJhci4gw4RuZGVydW5nZW4gZXJmb2xnZW4gbnVyIGRpcmVrdCBpbSBDb2Rl +L1NlcnZlci4iIH0pKTsKICAgICAgcGFuZS5hcHBlbmRDaGlsZChsb2NrKTsKCiAgICAgIHBhbmUu +YXBwZW5kQ2hpbGQocmVzZXRCdG4oIkFMTEVTIGF1ZiBTdGFuZGFyZCB6dXLDvGNrc2V0emVuIiwg +ZnVuY3Rpb24gKCkgewogICAgICAgIFMudWkgPSB7IGNvbG9yczogeyBsaWdodDoge30sIGRhcms6 +IHt9IH0sIHRva2Vuczoge30sIHRleHRzOiB7fSwgbW9kdWxlczoge30gfTsKICAgICAgICAvLyBM +aXZlLVZvcnNjaGF1IHPDpHViZXJuOgogICAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZG9jdW1l +bnRFbGVtZW50LnN0eWxlOwogICAgICAgIChQLlVJX1ZBUlMgfHwgW10pLmZvckVhY2goZnVuY3Rp +b24gKGYpIHsgcm9vdC5yZW1vdmVQcm9wZXJ0eShmLmNzc1Zhcik7IH0pOwogICAgICAgIGRvY3Vt +ZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtZGVuc2l0eSIpOwogICAg +ICAgIHByZXZpZXdUb2tlbnMoKTsgUC5hbGxUZXh0cygpLmZvckVhY2goZnVuY3Rpb24gKGQpIHsg +cHJldmlld1RleHQoZC5rZXksIGQuZGVmKTsgfSk7IHJlbmRlclBhbmUoKTsKICAgICAgICBQLnRv +YXN0KCJadXLDvGNrZ2VzZXR6dCDigJQgbWl0IFNwZWljaGVybiBiZXN0w6R0aWdlbi4iKTsKICAg +ICAgfSkpOwogICAgfQoKICAgIC8qIC0tLS0tLS0tLS0gU2VrdGlvbjogSW1wcmVzc3VtICYgU3Vw +cG9ydCAtLS0tLS0tLS0tICovCiAgICBmdW5jdGlvbiBzZWNJbmZvKHBhbmUpIHsKICAgICAgaGVh +ZChwYW5lLCAiSW1wcmVzc3VtICYgU3VwcG9ydCIsICJJbXByZXNzdW1zLVRleHQgKyB6d2VpIFN1 +cHBvcnQtV2VnZTogVGVhbSA1IChhbGxlIFJvbGxlbikgdW5kIFBISyBSb2VzZ2VuIChFc2thbGF0 +aW9uLCBudXIgUmVkYWt0ZXVyL0FkbWluKS4gTGVlciA9IGRpZSBoaW50ZXJsZWd0ZW4gU3RhbmRh +cmQtVGV4dGUuIik7CiAgICAgIHZhciBQSCA9ICJQbGF0emhhbHRlciAoYXV0b20uIGVyc2V0enQp +OiB7bndfa2VubnVuZ30ge3JvbGxlfSB7YW5zaWNodH0ge2RhdHVtfSB7dWhyemVpdH0ge2F1Zmxv +ZXN1bmd9IHt2ZXJzaW9ufSB7YnJvd3Nlcn0uIFJlaW5lciBUZXh0LiI7CgogICAgICB2YXIgZ2kg +PSBncm91cEJveChwYW5lLCAiSW1wcmVzc3VtIChIVE1MKSIpOwogICAgICB2YXIgdGEgPSBlbCgi +dGV4dGFyZWEiLCB7IGNsYXNzOiAic2V0LWJpZ3RhIiwgcm93czogIjEyIiwgdmFsdWU6IFMuaW1w +cmVzc3VtIHx8ICIiLAogICAgICAgIHBsYWNlaG9sZGVyOiAiTGVlciA9IFN0YW5kYXJkLUltcHJl +c3N1bS4gRXJsYXVidGUgVGFnczogaDQsIHAsIHVsLCBsaSwgc3Ryb25nLCBlbSwgYnIsIGEg4oCm +ICh3aXJkIGJlaW0gQW56ZWlnZW4gc2FuaXRpc2llcnQpLiBIaWVyIGF1Y2ggZGllIGJlbmFubnRl +biBSZWRha3RldXI6aW5uZW4vQWRtaW5zIGF1Zmxpc3Rlbi4iIH0pOwogICAgICB0YS5hZGRFdmVu +dExpc3RlbmVyKCJpbnB1dCIsIGZ1bmN0aW9uICgpIHsgUy5pbXByZXNzdW0gPSB0YS52YWx1ZTsg +fSk7CiAgICAgIGdpLmFwcGVuZENoaWxkKHRhKTsKICAgICAgZ2kuYXBwZW5kQ2hpbGQocmVzZXRC +dG4oIkltcHJlc3N1bSBhdWYgU3RhbmRhcmQiLCBmdW5jdGlvbiAoKSB7IFMuaW1wcmVzc3VtID0g +IiI7IHJlbmRlclBhbmUoKTsgfSkpOwoKICAgICAgLy8gLS0tIFN1cHBvcnQgVGVhbSA1IChhbGxn +ZW1laW4sIGbDvHIgYWxsZSBSb2xsZW4gc2ljaHRiYXIpIC0tLQogICAgICB2YXIgZzUgPSBncm91 +cEJveChwYW5lLCAiU3VwcG9ydCBUZWFtIDUgKGFsbGdlbWVpbmVyIFdlZywgYWxsZSBSb2xsZW4p +Iik7CiAgICAgIHZhciBlNSA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogKFMu +c3VwcG9ydC50ZWFtNUVtYWlsIHx8ICIiKSwgcGxhY2Vob2xkZXI6ICJ6LiBCLiB0ZWFtNS1zdXBw +b3J0QHBvbGl6ZWkubnJ3LmRlIiwKICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IFMuc3Vw +cG9ydC50ZWFtNUVtYWlsID0gdGhpcy52YWx1ZS50cmltKCk7IH0gfSk7CiAgICAgIGc1LmFwcGVu +ZENoaWxkKGZpZWxkUm93KCJFbXBmw6RuZ2VyIChFLU1haWwpIiwgZTUsICJMZWVyID0gT3V0bG9v +ayDDtmZmbmV0IG9obmUgRW1wZsOkbmdlciAobWFudWVsbCB3w6RobGVuKS4gQml0dGUgZGllIFRl +YW0tNS1TdXBwb3J0LUFkcmVzc2UgZWludHJhZ2VuLiIpKTsKICAgICAgdmFyIHM1ID0gZWwoImlu +cHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiAoUy5zdXBwb3J0LnRlYW01U3ViamVjdCB8fCAi +IiksIHBsYWNlaG9sZGVyOiAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IChUZWFtIDUpIiwKICAg +ICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IFMuc3VwcG9ydC50ZWFtNVN1YmplY3QgPSB0aGlz +LnZhbHVlOyB9IH0pOwogICAgICBnNS5hcHBlbmRDaGlsZChmaWVsZFJvdygiQmV0cmVmZiIsIHM1 +KSk7CiAgICAgIHZhciBtNSA9IGVsKCJ0ZXh0YXJlYSIsIHsgY2xhc3M6ICJzZXQtYmlndGEiLCBy +b3dzOiAiMTIiLCB2YWx1ZTogKFMuc3VwcG9ydC50ZWFtNU1haWwgfHwgIiIpLCBwbGFjZWhvbGRl +cjogIkxlZXIgPSBTdGFuZGFyZC1GcmFnZW5rYXRhbG9nIChUZWFtIDUpLiIgfSk7CiAgICAgIG01 +LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKCkgeyBTLnN1cHBvcnQudGVhbTVN +YWlsID0gbTUudmFsdWU7IH0pOwogICAgICBnNS5hcHBlbmRDaGlsZChmaWVsZFJvdygiTWFpbC1W +b3JsYWdlIChGcmFnZW5rYXRhbG9nKSIsIG01LCBQSCkpOwogICAgICBnNS5hcHBlbmRDaGlsZChy +ZXNldEJ0bigiVGVhbS01LVZvcmxhZ2UgYXVmIFN0YW5kYXJkIiwgZnVuY3Rpb24gKCkgeyBTLnN1 +cHBvcnQudGVhbTVNYWlsID0gIiI7IHJlbmRlclBhbmUoKTsgfSkpOwoKICAgICAgLy8gLS0tIFN1 +cHBvcnQgUEhLIFJvZXNnZW4gKEVza2FsYXRpb24sIG51ciBSZWRha3RldXIvQWRtaW4gc2ljaHRi +YXIpIC0tLQogICAgICB2YXIgZ3IgPSBncm91cEJveChwYW5lLCAiU3VwcG9ydCBQSEsgUm9lc2dl +biAoRXNrYWxhdGlvbiwgbnVyIFJlZGFrdGV1ci9BZG1pbikiKTsKICAgICAgdmFyIGVtID0gZWwo +ImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiAoUy5zdXBwb3J0LmVtYWlsIHx8ICIiKSwg +cGxhY2Vob2xkZXI6ICJwaGlsaXBwLnJvZXNnZW5AcG9saXplaS5ucncuZGUiLAogICAgICAgIG9u +aW5wdXQ6IGZ1bmN0aW9uICgpIHsgUy5zdXBwb3J0LmVtYWlsID0gdGhpcy52YWx1ZS50cmltKCk7 +IH0gfSk7CiAgICAgIGdyLmFwcGVuZENoaWxkKGZpZWxkUm93KCJFbXBmw6RuZ2VyIChFLU1haWwp +IiwgZW0sICJEZXIgSGlud2VpcyArIEJ1dHRvbiBzaW5kIGltIEltcHJlc3N1bSBudXIgZsO8ciBS +ZWRha3RldXIvQWRtaW4gc2ljaHRiYXIuIikpOwogICAgICB2YXIgc3UgPSBlbCgiaW5wdXQiLCB7 +IHR5cGU6ICJ0ZXh0IiwgdmFsdWU6IChTLnN1cHBvcnQuc3ViamVjdCB8fCAiIiksIHBsYWNlaG9s +ZGVyOiAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IiwKICAgICAgICBvbmlucHV0OiBmdW5jdGlv +biAoKSB7IFMuc3VwcG9ydC5zdWJqZWN0ID0gdGhpcy52YWx1ZTsgfSB9KTsKICAgICAgZ3IuYXBw +ZW5kQ2hpbGQoZmllbGRSb3coIkJldHJlZmYiLCBzdSkpOwogICAgICB2YXIgdG0gPSBlbCgidGV4 +dGFyZWEiLCB7IGNsYXNzOiAic2V0LWJpZ3RhIiwgcm93czogIjEyIiwgdmFsdWU6IChTLnN1cHBv +cnQubWFpbCB8fCAiIiksIHBsYWNlaG9sZGVyOiAiTGVlciA9IFN0YW5kYXJkLUZyYWdlbmthdGFs +b2cuIiB9KTsKICAgICAgdG0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbiAoKSB7 +IFMuc3VwcG9ydC5tYWlsID0gdG0udmFsdWU7IH0pOwogICAgICBnci5hcHBlbmRDaGlsZChmaWVs +ZFJvdygiTWFpbC1Wb3JsYWdlIChGcmFnZW5rYXRhbG9nKSIsIHRtLCBQSCkpOwogICAgICBnci5h +cHBlbmRDaGlsZChyZXNldEJ0bigiUm9lc2dlbi1Wb3JsYWdlIGF1ZiBTdGFuZGFyZCIsIGZ1bmN0 +aW9uICgpIHsgUy5zdXBwb3J0Lm1haWwgPSAiIjsgcmVuZGVyUGFuZSgpOyB9KSk7CiAgICB9Cgog +ICAgLyogLS0tLS0tLS0tLSBUYWJzIC0tLS0tLS0tLS0gKi8KICAgIHZhciBUQUJTID0gWwogICAg +ICB7IGlkOiAidGV4dHMiLCAgIGxhYmVsOiAiQmVzY2hyaWZ0dW5nZW4iLCAgICAgaWNvbjogImVk +aXQiLCAgICByZW5kZXI6IHNlY1RleHRzIH0sCiAgICAgIHsgaWQ6ICJicmFuZCIsICAgbGFiZWw6 +ICJNYXJrZSAmIExvZ28iLCAgICAgICBpY29uOiAic3RhciIsICAgIHJlbmRlcjogc2VjQnJhbmQg +fSwKICAgICAgeyBpZDogImxhZ2UiLCAgICBsYWJlbDogIkxhZ2UtVm9ybGFnZW4iLCAgICAgIGlj +b246ICJhbGVydCIsICAgcmVuZGVyOiBzZWNMYWdlIH0sCiAgICAgIHsgaWQ6ICJjbCIsICAgICAg +bGFiZWw6ICJGYXJiZW4gKEhlbGwpIiwgICAgICBpY29uOiAic3VuIiwgICAgIHJlbmRlcjogc2Vj +Q29sb3JzKCJsaWdodCIpIH0sCiAgICAgIHsgaWQ6ICJjZCIsICAgICAgbGFiZWw6ICJGYXJiZW4g +KER1bmtlbCkiLCAgICBpY29uOiAibW9vbiIsICAgIHJlbmRlcjogc2VjQ29sb3JzKCJkYXJrIikg +fSwKICAgICAgeyBpZDogInR5cG8iLCAgICBsYWJlbDogIlR5cG9ncmFmaWUiLCAgICAgICAgIGlj +b246ICJoZWFkaW5nIiwgcmVuZGVyOiBzZWNUb2tlbnMoInR5cG8iLCAiVHlwb2dyYWZpZSIsICJT +Y2hyaWZ0Z3LDtsOfZW4gdW5kIFplaWxlbmjDtmhlbi4gTGVlciA9IFN0YW5kYXJkLiIpIH0sCiAg +ICAgIHsgaWQ6ICJsYXlvdXQiLCAgbGFiZWw6ICJMYXlvdXQgJiBBYnN0w6RuZGUiLCAgaWNvbjog +ImdyaWQiLCAgICByZW5kZXI6IHNlY0xheW91dCB9LAogICAgICB7IGlkOiAibW90aW9uIiwgIGxh +YmVsOiAiQmV3ZWd1bmciLCAgICAgICAgICAgaWNvbjogImJvbHQiLCAgICByZW5kZXI6IHNlY1Rv +a2VucygiYmV3ZWd1bmciLCAiQmV3ZWd1bmciLCAiw5xiZXJnYW5nc2RhdWVybi4gTGVlciA9IFN0 +YW5kYXJkLiIsICJCZWkgYWt0aXZpZXJ0ZXIgU3lzdGVtZWluc3RlbGx1bmcgQmV3ZWd1bmctcmVk +dXppZXJlbiB3ZXJkZW4gQW5pbWF0aW9uZW4gdW5hYmjDpG5naWcgZGF2b24gYWJnZXNjaGFsdGV0 +IChCYXJyaWVyZWZyZWloZWl0KS4iKSB9LAogICAgICB7IGlkOiAibW9kdWxlcyIsIGxhYmVsOiAi +TW9kdWxlICYgTGltaXRzIiwgICAgaWNvbjogInBhbmVsUiIsICByZW5kZXI6IHNlY01vZHVsZXMg +fSwKICAgICAgeyBpZDogImluZm8iLCAgICBsYWJlbDogIkltcHJlc3N1bSAmIFN1cHBvcnQiLCBp +Y29uOiAiaW5ib3giLCAgcmVuZGVyOiBzZWNJbmZvIH0sCiAgICAgIHsgaWQ6ICJnZW5lcmFsIiwg +bGFiZWw6ICJBbGxnZW1laW4iLCAgICAgICAgICBpY29uOiAic2hpZWxkIiwgIHJlbmRlcjogc2Vj +R2VuZXJhbCB9CiAgICBdOwogICAgdmFyIG5hdiwgcGFuZTsKICAgIGZ1bmN0aW9uIHJlbmRlck5h +digpIHsKICAgICAgbmF2LmlubmVySFRNTCA9ICIiOwogICAgICBUQUJTLmZvckVhY2goZnVuY3Rp +b24gKHQpIHsKICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1 +dHRvbiIsIGNsYXNzOiAiYWRtLXRhYiIgKyAodC5pZCA9PT0gYWN0aXZlID8gIiBhY3RpdmUiIDog +IiIpLAogICAgICAgICAgaHRtbDogaWModC5pY29uKSArICI8c3Bhbj4iICsgZXNjKHQubGFiZWwp +ICsgIjwvc3Bhbj4iLAogICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBhY3RpdmUgPSB0 +LmlkOyByZW5kZXJOYXYoKTsgcmVuZGVyUGFuZSgpOyB9IH0pKTsKICAgICAgfSk7CiAgICB9CiAg +ICBmdW5jdGlvbiByZW5kZXJQYW5lKCkgewogICAgICBwYW5lLmlubmVySFRNTCA9ICIiOwogICAg +ICB2YXIgdCA9IFRBQlMuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4LmlkID09PSBhY3Rp +dmU7IH0pWzBdOwogICAgICBpZiAodCkgdC5yZW5kZXIocGFuZSk7CiAgICAgIHBhbmUuc2Nyb2xs +VG9wID0gMDsKICAgIH0KICAgIGZ1bmN0aW9uIGJ1aWxkKGhvc3QpIHsKICAgICAgaG9zdC5jbGFz +c0xpc3QuYWRkKCJhZG0taG9zdCIpOwogICAgICBuYXYgPSBlbCgiZGl2IiwgeyBjbGFzczogImFk +bS1uYXYiIH0pOwogICAgICBwYW5lID0gZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tcGFuZSIgfSk7 +CiAgICAgIHJlbmRlck5hdigpOyByZW5kZXJQYW5lKCk7CiAgICAgIGhvc3QuYXBwZW5kQ2hpbGQo +ZWwoImRpdiIsIHsgY2xhc3M6ICJhZG0tc2hlbGwiIH0sIFtuYXYsIHBhbmVdKSk7CiAgICB9Cgog +ICAgZnVuY3Rpb24gY2xlYW4ocykgeyByZXR1cm4gU3RyaW5nKHMgPT0gbnVsbCA/ICIiIDogcyku +cmVwbGFjZSgvW1xyXG5dKy9nLCAiICIpLnRyaW0oKTsgfQogICAgZnVuY3Rpb24gc2F2ZSgpIHsK +ICAgICAgUy5icmFuZGluZy5wb3J0YWxUaXRsZSA9IGNsZWFuKFMuYnJhbmRpbmcucG9ydGFsVGl0 +bGUpOwogICAgICBTLmJyYW5kaW5nLmJyYW5kTmFtZSA9IGNsZWFuKFMuYnJhbmRpbmcuYnJhbmRO +YW1lKTsKICAgICAgUy5icmFuZGluZy5icmFuZFN1YnRpdGxlID0gY2xlYW4oUy5icmFuZGluZy5i +cmFuZFN1YnRpdGxlKTsKICAgICAgUy5icmFuZGluZy5wcmludEZvb3RlciA9IGNsZWFuKFMuYnJh +bmRpbmcucHJpbnRGb290ZXIpOwogICAgICBpZiAoIVMuYnJhbmRpbmcucG9ydGFsVGl0bGUgfHwg +IVMuYnJhbmRpbmcuYnJhbmROYW1lKSB7CiAgICAgICAgYWN0aXZlID0gImJyYW5kIjsgcmVuZGVy +TmF2KCk7IHJlbmRlclBhbmUoKTsKICAgICAgICBpZiAoYnJhbmRFcnIpIHsgYnJhbmRFcnIudGV4 +dENvbnRlbnQgPSAiVGl0ZWwgdW5kIE1hcmtlbm5hbWUgZMO8cmZlbiBuaWNodCBsZWVyIHNlaW4u +IjsgYnJhbmRFcnIuaGlkZGVuID0gZmFsc2U7IH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg +IH0KICAgICAgUy5sYWdlUHJlc2V0cyA9IFMubGFnZVByZXNldHMuZmlsdGVyKGZ1bmN0aW9uIChw +KSB7IHJldHVybiBjbGVhbihwLnRleHQpOyB9KQogICAgICAgIC5tYXAoZnVuY3Rpb24gKHApIHsg +cmV0dXJuIHsgdGV4dDogY2xlYW4ocC50ZXh0KSwgbGV2ZWw6IHAubGV2ZWwgPT09ICJhbGVydCIg +PyAiYWxlcnQiIDogIm9rIiB9OyB9KTsKICAgICAgUC5jb250ZW50LnNldHRpbmdzID0gUzsKICAg +ICAgUC5wZXJzaXN0KCk7IFAuYXBwbHlTZXR0aW5ncygpOyBQLnJlbmRlckFsbCgpOwogICAgICBQ +LnRvYXN0KCJFaW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0IiArIChQLmxpdmUgPyAiICYgdmVyw7Zm +ZmVudGxpY2h0LiIgOiAiLiIpKTsKICAgIH0KCiAgICBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJQ +b3J0YWwtRWluc3RlbGx1bmdlbiIsIGljb246ICJncmlkIiwgc2l6ZTogInhsIiwKICAgICAgYm9k +eTogYnVpbGQsCiAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHsgUC5hcHBseVNldHRpbmdzKCk7 +IH0sICAgLy8gTGl2ZS1Wb3JzY2hhdSBhdWYgZ2VzcGVpY2hlcnRlbiBTdGFuZCB6dXJ1ZWNrc2V0 +emVuCiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDog +Imdob3N0IiB9LAogICAgICAgIHsgbGFiZWw6ICJTcGVpY2hlcm4iLCBraW5kOiAicHJpbWFyeSIs +IG9uQ2xpY2s6IHNhdmUgfQogICAgICBdCiAgICB9KTsKICB9OwoKfSkod2luZG93LlApOwo= +### FILE: assets/js/collab/collab.js | 15972 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgY29sbGFiLmpzICAoUGhhc2UgNCkK +ICAgS29sbGFib3JhdGlvbiBhdWYgZGVtIGdlbWVpbnNhbWVuIFNoYXJlOiBzZXJ2ZXJzZWl0aWdl +IFp3aXNjaGVuc3RhZW5kZQogICAoQXV0b3NhdmUsIGFic3R1cnpzaWNoZXIpLCBQcmFlc2VueiAo +IndpcmQgZ2VyYWRlIGJlYXJiZWl0ZXQiKSwKICAgQWt0aXZpdGFldHMtL1p3aXNjaGVuc3RhbmRz +LVVlYmVyc2ljaHQgdW5kIEtvbmZsaWt0LUVya2VubnVuZyBiZWltCiAgIFZlcm9lZmZlbnRsaWNo +ZW4gKDQwOSkgbWl0IERpZmYtQW5zaWNodC4gTnVyIGltIFBmbGVnZS1Nb2R1cyBha3Rpdi4KICAg +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwg +PSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzYyA9IFAuZXNjYXBlSHRtbDsKCiAgUC5jb2xs +YWJTdGF0ZSA9IHsgZHJhZnRzOiBbXSwgbG9ja3M6IFtdLCBhY3Rpdml0eTogW10sIHJldnM6IHt9 +IH07CiAgdmFyIHBvbGxUaW1lciA9IG51bGwsIGVkaXQgPSBudWxsLCB3cmFwcGVkID0gZmFsc2U7 +CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tIEhUVFAgKi8KICBmdW5jdGlvbiBqcG9zdChwYXRoLCBib2R5KSB7CiAgICByZXR1 +cm4gZmV0Y2gocGF0aCwgeyBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiQ29udGVudC1UeXBl +IjogImFwcGxpY2F0aW9uL2pzb24iIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpIH0pCiAg +ICAgIC50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkuY2F0Y2goZnVuY3Rp +b24gKCkgeyByZXR1cm4gbnVsbDsgfSk7CiAgfQogIGZ1bmN0aW9uIGpkZWwocGF0aCkgeyByZXR1 +cm4gZmV0Y2gocGF0aCwgeyBtZXRob2Q6ICJERUxFVEUiIH0pLnRoZW4oZnVuY3Rpb24gKHIpIHsg +cmV0dXJuIHIuanNvbigpOyB9KS5jYXRjaChmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsOyB9KTsg +fQogIGZ1bmN0aW9uIHFzKG8pIHsgdmFyIGEgPSBbXTsgZm9yICh2YXIgayBpbiBvKSBhLnB1c2go +ZW5jb2RlVVJJQ29tcG9uZW50KGspICsgIj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KG9ba10pKTsg +cmV0dXJuIGEuam9pbigiJiIpOyB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFplaWxlbi1EaWZmIChMQ1MsIG1pdCBGYWxs +YmFjaykgKi8KICBQLmRpZmZMaW5lcyA9IGZ1bmN0aW9uIChhVGV4dCwgYlRleHQpIHsKICAgIHZh +ciBhID0gKGFUZXh0ID09IG51bGwgPyAiIiA6IFN0cmluZyhhVGV4dCkpLnNwbGl0KCJcbiIpLCBi +ID0gKGJUZXh0ID09IG51bGwgPyAiIiA6IFN0cmluZyhiVGV4dCkpLnNwbGl0KCJcbiIpOwogICAg +dmFyIG91dCA9IFtdLCBpLCBqOwogICAgaWYgKGEubGVuZ3RoID4gMTIwMCB8fCBiLmxlbmd0aCA+ +IDEyMDApIHsgICAgICAgIC8vIHp1IGdyb3NzIGZ1ZXIgTENTIC0+IE1lbmdlbi1EaWZmCiAgICAg +IHZhciBzYSA9IHt9LCBzYiA9IHt9OwogICAgICBhLmZvckVhY2goZnVuY3Rpb24gKGwpIHsgc2Fb +bF0gPSAxOyB9KTsgYi5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7IHNiW2xdID0gMTsgfSk7CiAgICAg +IGEuZm9yRWFjaChmdW5jdGlvbiAobCkgeyBpZiAoIXNiW2xdKSBvdXQucHVzaCh7IHQ6ICItIiwg +bDogbCB9KTsgfSk7CiAgICAgIGIuZm9yRWFjaChmdW5jdGlvbiAobCkgeyBpZiAoIXNhW2xdKSBv +dXQucHVzaCh7IHQ6ICIrIiwgbDogbCB9KTsgfSk7CiAgICAgIHJldHVybiBvdXQ7CiAgICB9CiAg +ICB2YXIgbiA9IGEubGVuZ3RoLCBtID0gYi5sZW5ndGgsIGRwID0gW107CiAgICBmb3IgKGkgPSAw +OyBpIDw9IG47IGkrKykgeyBkcFtpXSA9IG5ldyBBcnJheShtICsgMSk7IGRwW2ldW21dID0gMDsg +fQogICAgZm9yIChqID0gMDsgaiA8PSBtOyBqKyspIGRwW25dW2pdID0gMDsKICAgIGZvciAoaSA9 +IG4gLSAxOyBpID49IDA7IGktLSkgZm9yIChqID0gbSAtIDE7IGogPj0gMDsgai0tKSBkcFtpXVtq +XSA9IGFbaV0gPT09IGJbal0gPyBkcFtpICsgMV1baiArIDFdICsgMSA6IE1hdGgubWF4KGRwW2kg +KyAxXVtqXSwgZHBbaV1baiArIDFdKTsKICAgIGkgPSAwOyBqID0gMDsKICAgIHdoaWxlIChpIDwg +biAmJiBqIDwgbSkgewogICAgICBpZiAoYVtpXSA9PT0gYltqXSkgeyBvdXQucHVzaCh7IHQ6ICIg +IiwgbDogYVtpXSB9KTsgaSsrOyBqKys7IH0KICAgICAgZWxzZSBpZiAoZHBbaSArIDFdW2pdID49 +IGRwW2ldW2ogKyAxXSkgeyBvdXQucHVzaCh7IHQ6ICItIiwgbDogYVtpXSB9KTsgaSsrOyB9CiAg +ICAgIGVsc2UgeyBvdXQucHVzaCh7IHQ6ICIrIiwgbDogYltqXSB9KTsgaisrOyB9CiAgICB9CiAg +ICB3aGlsZSAoaSA8IG4pIG91dC5wdXNoKHsgdDogIi0iLCBsOiBhW2krK10gfSk7CiAgICB3aGls +ZSAoaiA8IG0pIG91dC5wdXNoKHsgdDogIisiLCBsOiBiW2orK10gfSk7CiAgICByZXR1cm4gb3V0 +OwogIH07CiAgLy8gTnVyIGdlYWVuZGVydGUgWmVpbGVuICsgZXR3YXMgS29udGV4dCByZW5kZXJu +LgogIGZ1bmN0aW9uIHJlbmRlckRpZmYoaG9zdCwgZGlmZikgewogICAgaG9zdC5pbm5lckhUTUwg +PSAiIjsKICAgIHZhciBzaG93ID0gW107CiAgICBkaWZmLmZvckVhY2goZnVuY3Rpb24gKGQsIGlk +eCkgewogICAgICBpZiAoZC50ICE9PSAiICIpIHsKICAgICAgICBmb3IgKHZhciBrID0gTWF0aC5t +YXgoMCwgaWR4IC0gMSk7IGsgPCBpZHg7IGsrKykgaWYgKHNob3cuaW5kZXhPZihrKSA8IDApIHNo +b3cucHVzaChrKTsKICAgICAgICBzaG93LnB1c2goaWR4KTsKICAgICAgICBpZiAoZGlmZltpZHgg +KyAxXSAmJiBkaWZmW2lkeCArIDFdLnQgPT09ICIgIikgc2hvdy5wdXNoKGlkeCArIDEpOwogICAg +ICB9CiAgICB9KTsKICAgIHNob3cgPSBzaG93LmZpbHRlcihmdW5jdGlvbiAodiwgaywgYXJyKSB7 +IHJldHVybiBhcnIuaW5kZXhPZih2KSA9PT0gazsgfSkuc29ydChmdW5jdGlvbiAoeCwgeSkgeyBy +ZXR1cm4geCAtIHk7IH0pOwogICAgaWYgKCFzaG93Lmxlbmd0aCkgeyBob3N0LmFwcGVuZENoaWxk +KGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiS2VpbmUgaW5oYWx0bGljaGVuIFVu +dGVyc2NoaWVkZSBnZWZ1bmRlbi4iIH0pKTsgcmV0dXJuOyB9CiAgICB2YXIgbGFzdCA9IC0yOwog +ICAgc2hvdy5mb3JFYWNoKGZ1bmN0aW9uIChpZHgpIHsKICAgICAgaWYgKGlkeCA+IGxhc3QgKyAx +KSBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiZGlmZi1nYXAiLCB0ZXh0OiAi +4ouvIiB9KSk7CiAgICAgIHZhciBkID0gZGlmZltpZHhdOwogICAgICBob3N0LmFwcGVuZENoaWxk +KGVsKCJkaXYiLCB7IGNsYXNzOiAiZGlmZi1saW5lICIgKyAoZC50ID09PSAiKyIgPyAiYWRkIiA6 +IGQudCA9PT0gIi0iID8gImRlbCIgOiAiY3R4IiksCiAgICAgICAgdGV4dDogKGQudCA9PT0gIisi +ID8gIisgIiA6IGQudCA9PT0gIi0iID8gIi0gIiA6ICIgICIpICsgZC5sIH0pKTsKICAgICAgbGFz +dCA9IGlkeDsKICAgIH0pOwogIH0KICBQLnJlbmRlckRpZmYgPSByZW5kZXJEaWZmOyAgIC8vIHZv +biBhZG1pbi9oaXN0b3JpZS5qcyB3aWVkZXJ2ZXJ3ZW5kZXQKCiAgLyogLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gS29uZmxpa3QgYmVp +bSBWZXJvZWZmZW50bGljaGVuICovCiAgUC5vblB1Ymxpc2hDb25mbGljdCA9IGZ1bmN0aW9uIChy +ZXMsIGZpbGVzKSB7CiAgICB2YXIgbWluZUZpbGUgPSBudWxsOwogICAgZmlsZXMuZm9yRWFjaChm +dW5jdGlvbiAoZikgeyBpZiAoZi5uYW1lID09PSByZXMubmFtZSkgbWluZUZpbGUgPSBmOyB9KTsK +ICAgIHZhciB1cmwgPSAiLyIgKyByZXMubmFtZSArICI/dD0iICsgbmV3IERhdGUoKS5nZXRUaW1l +KCk7CiAgICBmZXRjaCh1cmwpLnRoZW4oZnVuY3Rpb24gKHIpIHsgcmV0dXJuIHIudGV4dCgpOyB9 +KS50aGVuKGZ1bmN0aW9uIChjdXJyZW50VGV4dCkgewogICAgICBzaG93Q29uZmxpY3QocmVzLCBm +aWxlcywgbWluZUZpbGUsIGN1cnJlbnRUZXh0KTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsg +c2hvd0NvbmZsaWN0KHJlcywgZmlsZXMsIG1pbmVGaWxlLCAiIik7IH0pOwogIH07CiAgdmFyIGNv +bmZsaWN0TW9kYWwgPSBudWxsOwogIGZ1bmN0aW9uIHNob3dDb25mbGljdChyZXMsIGZpbGVzLCBt +aW5lRmlsZSwgY3VycmVudFRleHQpIHsKICAgIGNsb3NlQ29uZmxpY3QoKTsKICAgIHZhciBkaWZm +ID0gUC5kaWZmTGluZXMoY3VycmVudFRleHQsIG1pbmVGaWxlID8gbWluZUZpbGUudGV4dCA6ICIi +KTsKICAgIGNvbmZsaWN0TW9kYWwgPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJWZXLDtmZmZW50 +bGljaHVuZ3MtS29uZmxpa3QiLCBpY29uOiAiYWxlcnQiLCBzaXplOiAibGciLAogICAgICBib2R5 +OiBmdW5jdGlvbiAoaG9zdCkgewogICAgICAgIGhvc3Quc3R5bGUucGFkZGluZyA9ICIwIjsgICAv +LyBTdWItWmVpbGUgKyBEaWZmIHJhbmRsb3Mgd2llIHp1dm9yCiAgICAgICAgaG9zdC5hcHBlbmRD +aGlsZChlbCgiZGl2IiwgeyBjbGFzczogImNvbGxhYi1kbGctc3ViIiwgaHRtbDoKICAgICAgICAg +ICJKZW1hbmQgaGF0IDxiPiIgKyBlc2MocmVzLm5hbWUpICsgIjwvYj4gendpc2NoZW56ZWl0bGlj +aCB2ZXLDtmZmZW50bGljaHQgKFN0YW5kICIgKyBlc2MoU3RyaW5nKHJlcy5jdXJyZW50UmV2KSkg +KwogICAgICAgICAgIiwgZGVpbiBTdGFuZCAiICsgZXNjKFN0cmluZyhyZXMueW91clJldikpICsg +IikuIFVudGVuIHNpZWhzdCBkdSwgd2FzIGRlaW5lIFZlcnNpb24gw6RuZGVybiB3w7xyZGUuIiB9 +KSk7CiAgICAgICAgdmFyIGRpZmZIb3N0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJkaWZmLXZpZXci +IH0pOyByZW5kZXJEaWZmKGRpZmZIb3N0LCBkaWZmKTsgaG9zdC5hcHBlbmRDaGlsZChkaWZmSG9z +dCk7CiAgICAgIH0sCiAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHsgY29uZmxpY3RNb2RhbCA9 +IG51bGw7IH0sCiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIChs +b2thbCBiZWhhbHRlbikiLCBraW5kOiAiZ2hvc3QiIH0sCiAgICAgICAgeyBsYWJlbDogIkFrdHVl +bGxlbiBTdGFuZCBsYWRlbiAobWVpbmUgdmVyd2VyZmVuKSIsIGtpbmQ6ICJkYW5nZXIiLAogICAg +ICAgICAgb25DbGljazogZnVuY3Rpb24gKCkgeyB0cnkgeyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRl +bShQLkxTLmNvbnRlbnQpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShQLkxTLm5hdik7IH0gY2F0 +Y2ggKGUpIHt9IGxvY2F0aW9uLnJlbG9hZCgpOyB9IH0sCiAgICAgICAgeyBsYWJlbDogIk1laW5l +IFZlcnNpb24gdmVyw7ZmZmVudGxpY2hlbiIsIGtpbmQ6ICJwcmltYXJ5IiwKICAgICAgICAgIG9u +Q2xpY2s6IGZ1bmN0aW9uICgpIHsgdmFyIGN1ciA9IHt9OyBjdXJbcmVzLm5hbWVdID0gcmVzLmN1 +cnJlbnRSZXY7IFAucmVwdWJsaXNoT3ZlcndyaXRlKGZpbGVzLCBjdXIpOyBQLnRvYXN0KCJEZWlu +ZSBWZXJzaW9uIHdpcmQgdmVyw7ZmZmVudGxpY2h0IOKApiIpOyB9IH0KICAgICAgXQogICAgfSk7 +CiAgfQogIGZ1bmN0aW9uIGNsb3NlQ29uZmxpY3QoKSB7IGlmIChjb25mbGljdE1vZGFsKSBjb25m +bGljdE1vZGFsLmNsb3NlKCk7IH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXV0b3NhdmUgLyBMb2NrIHBybyBFZGl0b3Ig +Ki8KICBmdW5jdGlvbiBiZWdpbkVkaXQoa2luZCwgdGFyZ2V0LCBsYWJlbCwgZGxnU2VsLCBzbmFw +Rm4sIGFwcGx5Rm4pIHsKICAgIGVuZEVkaXQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAvLyBldnRsLiB2b3JoZXJpZ2UgQmVhcmJlaXR1bmcgc2F1YmVyIHNjaGxpZXNzZW4KICAgIGVk +aXQgPSB7IGtpbmQ6IGtpbmQsIHRhcmdldDogdGFyZ2V0LCBsYWJlbDogbGFiZWwsIHNuYXA6IHNu +YXBGbiwgZGxnOiBkbGdTZWwsIGRpcnR5OiBmYWxzZSB9OwogICAganBvc3QoIi9hcGkvbG9jayIs +IHsga2luZDoga2luZCwgdGFyZ2V0SWQ6IHRhcmdldCwgbGFiZWw6IGxhYmVsIH0pOwogICAgLy8g +Q3Jhc2gtUmVjb3Zlcnk6IGxpZWd0IGVpbiBad2lzY2hlbnN0YW5kIGZ1ZXIgZGllc2VzIFppZWwg +dm9yPwogICAgdmFyIGQgPSBmaW5kRHJhZnQoa2luZCwgdGFyZ2V0KTsKICAgIGlmIChkICYmIGQu +cGF5bG9hZCAmJiBhcHBseUZuKSB7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAg +ICAgIFAuY29uZmlybSgiRsO8ciDigJ4iICsgbGFiZWwgKyAi4oCcIGdpYnQgZXMgZWluZW4gbmlj +aHQgYWJnZXNjaGxvc3NlbmVuIFp3aXNjaGVuc3RhbmQgKCIgKyAoZC5uYW1lIHx8IGQuYXV0aG9y +KSArICIsICIgKyAoZC51cGRhdGVkQXQgfHwgIiIpICsgIikuXG5cbldpZWRlcmhlcnN0ZWxsZW4/ +IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgYXBwbHlGbihkLnBheWxvYWQpOyBQLnRvYXN0KCJa +d2lzY2hlbnN0YW5kIHdpZWRlcmhlcmdlc3RlbGx0LiIpOwogICAgICAgIH0pOwogICAgICB9LCA4 +MCk7CiAgICB9CiAgICAvLyBBdXRvc2F2ZTogYmVpIEVpbmdhYmUgKGVudHByZWxsdCkgKyByZWdl +bG1hZXNzaWcuCiAgICBlZGl0Lm9uSW5wdXQgPSBmdW5jdGlvbiAoKSB7IGVkaXQuZGlydHkgPSB0 +cnVlOyBzY2hlZHVsZVNhdmUoKTsgfTsKICAgIHZhciBkbGcgPSAkKGRsZ1NlbCk7IGlmIChkbGcp +IGRsZy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGVkaXQub25JbnB1dCk7CiAgICBlZGl0Lml2 +ID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBpZiAoZWRpdCAmJiBlZGl0LmRpcnR5KSBzYXZl +RHJhZnQoKTsgfSwgNDAwMCk7CiAgICBlZGl0LmhiID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkg +eyBpZiAoZWRpdCkganBvc3QoIi9hcGkvbG9jayIsIHsga2luZDogZWRpdC5raW5kLCB0YXJnZXRJ +ZDogZWRpdC50YXJnZXQsIGxhYmVsOiBlZGl0LmxhYmVsIH0pOyB9LCA2MDAwMCk7CiAgICBlZGl0 +Lm9uQ2xvc2UgPSBmdW5jdGlvbiAoKSB7IGVuZEVkaXQodHJ1ZSk7IH07CiAgICBpZiAoZGxnKSBk +bGcuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCBlZGl0Lm9uQ2xvc2UpOwogIH0KICB2YXIgc2F2 +ZVQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU2F2ZSgpIHsgY2xlYXJUaW1lb3V0KHNhdmVU +KTsgc2F2ZVQgPSBzZXRUaW1lb3V0KHNhdmVEcmFmdCwgMTUwMCk7IH0KICBmdW5jdGlvbiBzYXZl +RHJhZnQoKSB7CiAgICBpZiAoIWVkaXQpIHJldHVybjsKICAgIHZhciBwYXlsb2FkOyB0cnkgeyBw +YXlsb2FkID0gZWRpdC5zbmFwKCk7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuOyB9CiAgICBlZGl0LmRp +cnR5ID0gZmFsc2U7CiAgICBqcG9zdCgiL2FwaS9kcmFmdCIsIHsga2luZDogZWRpdC5raW5kLCB0 +YXJnZXRJZDogZWRpdC50YXJnZXQsIHBheWxvYWQ6IHBheWxvYWQsIGJhc2VSZXY6IFAuc2VydmVy +UmV2IH0pOwogIH0KICAvLyBiZWltIFNjaGxpZXNzZW4gZGVzIERpYWxvZ3M6IExvY2sgKyBad2lz +Y2hlbnN0YW5kIGF1ZnJhZXVtZW4gKGJld3Vzc3QgYmVlbmRldCkuCiAgLy8gQmVpIEFic3R1cnog +KGtlaW4gY2xvc2UtRXZlbnQpIGJsZWlidCBkZXIgWndpc2NoZW5zdGFuZCBzZXJ2ZXJzZWl0aWcg +ZXJoYWx0ZW4uCiAgZnVuY3Rpb24gZW5kRWRpdChyZW1vdmVEcmFmdCkgewogICAgaWYgKCFlZGl0 +KSByZXR1cm47CiAgICBjbGVhclRpbWVvdXQoc2F2ZVQpOyBjbGVhckludGVydmFsKGVkaXQuaXYp +OyBjbGVhckludGVydmFsKGVkaXQuaGIpOwogICAgdmFyIGRsZyA9ICQoZWRpdC5kbGcpOyBpZiAo +ZGxnICYmIGVkaXQub25JbnB1dCkgZGxnLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0IiwgZWRp +dC5vbklucHV0KTsKICAgIGlmIChkbGcgJiYgZWRpdC5vbkNsb3NlKSBkbGcucmVtb3ZlRXZlbnRM +aXN0ZW5lcigiY2xvc2UiLCBlZGl0Lm9uQ2xvc2UpOwogICAgamRlbCgiL2FwaS9sb2NrPyIgKyBx +cyh7IGtpbmQ6IGVkaXQua2luZCwgdGFyZ2V0SWQ6IGVkaXQudGFyZ2V0IH0pKTsKICAgIGlmIChy +ZW1vdmVEcmFmdCkgamRlbCgiL2FwaS9kcmFmdD8iICsgcXMoeyBraW5kOiBlZGl0LmtpbmQsIHRh +cmdldElkOiBlZGl0LnRhcmdldCB9KSk7CiAgICBlZGl0ID0gbnVsbDsKICB9CiAgZnVuY3Rpb24g +ZmluZERyYWZ0KGtpbmQsIHRhcmdldCkgewogICAgdmFyIGxpc3QgPSBQLmNvbGxhYlN0YXRlLmRy +YWZ0cyB8fCBbXSwgaGl0ID0gbnVsbDsKICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAoZCkgeyBp +ZiAoZC5raW5kID09PSBraW5kICYmIGQudGFyZ2V0SWQgPT09IHRhcmdldCkgaGl0ID0gZDsgfSk7 +CiAgICByZXR1cm4gaGl0OwogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRWRpdG9yLUZ1bmt0aW9uZW4gdW1odWVsbGVu +ICovCiAgZnVuY3Rpb24gd3JhcEVkaXRvcnMoKSB7CiAgICBpZiAod3JhcHBlZCkgcmV0dXJuOyB3 +cmFwcGVkID0gdHJ1ZTsKICAgIGlmIChQLm9wZW5BcnRpY2xlRGxnKSB7CiAgICAgIHZhciBvYSA9 +IFAub3BlbkFydGljbGVEbGc7CiAgICAgIFAub3BlbkFydGljbGVEbGcgPSBmdW5jdGlvbiAoeCkg +eyBvYSh4KTsgaWYgKFAuYXJ0aWNsZVRhcmdldCkgYmVnaW5FZGl0KCJhcnRpY2xlIiwgUC5hcnRp +Y2xlVGFyZ2V0KCksIFAuYXJ0aWNsZUxhYmVsKCksICIjYXJ0LWRsZyIsIFAuYXJ0aWNsZVNuYXBz +aG90LCBQLmFydGljbGVBcHBseSk7IH07CiAgICB9CiAgICBpZiAoUC5vcGVuQnVsbGV0aW5EbGcp +IHsKICAgICAgdmFyIG9iID0gUC5vcGVuQnVsbGV0aW5EbGc7CiAgICAgIFAub3BlbkJ1bGxldGlu +RGxnID0gZnVuY3Rpb24gKHgpIHsgb2IoeCk7IGlmIChQLmJ1bGxldGluVGFyZ2V0KSBiZWdpbkVk +aXQoImJ1bGxldGluIiwgUC5idWxsZXRpblRhcmdldCgpLCBQLmJ1bGxldGluTGFiZWwoKSwgIiNi +dWxsLWRsZyIsIFAuYnVsbGV0aW5TbmFwc2hvdCwgUC5idWxsZXRpbkFwcGx5KTsgfTsKICAgIH0K +ICAgIC8vIExldHp0ZW4gWndpc2NoZW5zdGFuZCBiZWkgQnJvd3Nlci0vVGFiLVNjaGx1c3Mgbm9j +aCBzaWNoZXJuIChDcmFzaC1GYWxsKS4KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZv +cmV1bmxvYWQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGlmIChlZGl0ICYmIG5hdmlnYXRvci5zZW5k +QmVhY29uKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciBib2R5ID0gSlNPTi5zdHJpbmdp +ZnkoeyBraW5kOiBlZGl0LmtpbmQsIHRhcmdldElkOiBlZGl0LnRhcmdldCwgcGF5bG9hZDogZWRp +dC5zbmFwKCksIGJhc2VSZXY6IFAuc2VydmVyUmV2IH0pOwogICAgICAgICAgbmF2aWdhdG9yLnNl +bmRCZWFjb24oIi9hcGkvZHJhZnQiLCBuZXcgQmxvYihbYm9keV0sIHsgdHlwZTogImFwcGxpY2F0 +aW9uL2pzb24iIH0pKTsKICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICB9CiAgICB9KTsKICB9 +CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tIFByYWVzZW56LURlY29yYXRpb24gKi8KICBmdW5jdGlvbiBkZWNvcmF0ZVByZXNl +bmNlKCkgewogICAgUC4kJCgiLmNvbGxhYi1iYWRnZSIpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsg +Yi5yZW1vdmUoKTsgfSk7CiAgICAoUC5jb2xsYWJTdGF0ZS5sb2NrcyB8fCBbXSkuZm9yRWFjaChm +dW5jdGlvbiAobGspIHsKICAgICAgaWYgKGxrLmF1dGhvciAmJiBQLnVzZXIgJiYgbGsuYXV0aG9y +LnRvTG93ZXJDYXNlKCkgPT09IFN0cmluZyhQLnVzZXIpLnRvTG93ZXJDYXNlKCkpIHJldHVybjsg +IC8vIGVpZ2VuZSBuaWNodAogICAgICB2YXIgd2hvID0gbGsubmFtZSB8fCBsay5hdXRob3IgfHwg +ImplbWFuZCI7CiAgICAgIGlmIChsay5raW5kID09PSAiYXJ0aWNsZSIpIHsKICAgICAgICB2YXIg +YSA9ICQoJyNzaWRlYmFyIGFbZGF0YS1rZXk9IicgKyBjc3NFc2MobGsudGFyZ2V0SWQpICsgJyJd +Jyk7CiAgICAgICAgaWYgKGEpIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiY29s +bGFiLWJhZGdlIiwgdGl0bGU6IHdobyArICIgYmVhcmJlaXRldCBkYXMgZ2VyYWRlIiwgaHRtbDog +aWMoImVkaXQiKSArIGVzYyhzaG9ydCh3aG8pKSB9KSk7CiAgICAgICAgLy8gUGhhc2UgODogYXVj +aCBkZXIgb2ZmZW5lIEFydGlrZWwtS29wZiBiZWtvbW10IGRlbiBQcmFlc2Vuei1CYWRnZS4KICAg +ICAgICBpZiAoUC5jdXJBcnRpY2xlICYmIGxrLnRhcmdldElkID09PSAoImFydDoiICsgKFAuY3Vy +QXJ0aWNsZS5faWQgfHwgUC5jdXJBcnRpY2xlLmxhYmVsKSkpIHsKICAgICAgICAgIHZhciBtZXRh +ID0gJCgiI2N2LWFydGljbGUgLmFydC1tZXRhIik7CiAgICAgICAgICBpZiAobWV0YSkgbWV0YS5h +cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJjb2xsYWItYmFkZ2UiLCB0aXRsZTogd2hv +ICsgIiBiZWFyYmVpdGV0IGRhcyBnZXJhZGUiLCBodG1sOiBpYygiZWRpdCIpICsgZXNjKHNob3J0 +KHdobykpIH0pKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAobGsua2luZCA9PT0gImJ1bGxl +dGluIikgewogICAgICAgIHZhciBiaWQgPSBsay50YXJnZXRJZC5yZXBsYWNlKC9eYnVsbDovLCAi +Iik7CiAgICAgICAgdmFyIGNhcmQgPSAkKCcjZmVlZCAuYnVsbFtkYXRhLWJpZD0iJyArIGNzc0Vz +YyhiaWQpICsgJyJdJyk7CiAgICAgICAgaWYgKGNhcmQpIHsgdmFyIHRvcCA9ICQoIi5idWxsLXRv +cCIsIGNhcmQpOyBpZiAodG9wKSB0b3AuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi +Y29sbGFiLWJhZGdlIiwgdGl0bGU6IHdobyArICIgYmVhcmJlaXRldCBkYXMgZ2VyYWRlIiwgaHRt +bDogaWMoImVkaXQiKSArIGVzYyhzaG9ydCh3aG8pKSB9KSk7IH0KICAgICAgfQogICAgfSk7CiAg +fQogIGZ1bmN0aW9uIHNob3J0KHMpIHsgcyA9IFN0cmluZyhzKTsgcmV0dXJuIHMubGVuZ3RoID4g +MTQgPyBzLnNsaWNlKDAsIDEzKSArICLigKYiIDogczsgfQogIGZ1bmN0aW9uIGNzc0VzYyhzKSB7 +IHJldHVybiBTdHJpbmcocykucmVwbGFjZSgvWyJcXF0vZywgIlxcJCYiKTsgfQoKICAvKiAtLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBT +dGF0ZS1Qb2xsICovCiAgZnVuY3Rpb24gcG9sbCgpIHsKICAgIGZldGNoKCIvYXBpL3N0YXRlIiku +dGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24gKGop +IHsKICAgICAgaWYgKCFqIHx8ICFqLm9rKSByZXR1cm47CiAgICAgIC8vIFBTNS4xIGthbm4gMS1l +bGVtZW50aWdlIEFycmF5cyBhbHMgT2JqZWt0IGxpZWZlcm4gLT4gbm9ybWFsaXNpZXJlbi4KICAg +ICAgUC5jb2xsYWJTdGF0ZSA9IHsgZHJhZnRzOiBhcnIoai5kcmFmdHMpLCBsb2NrczogYXJyKGou +bG9ja3MpLCBhY3Rpdml0eTogYXJyKGouYWN0aXZpdHkpLCByZXZzOiBqLnJldnMgfHwge30gfTsK +ICAgICAgaWYgKGoucmV2cykgUC5zZXJ2ZXJSZXYgPSBqLnJldnM7CiAgICAgIGRlY29yYXRlUHJl +c2VuY2UoKTsKICAgICAgdXBkYXRlQnV0dG9uKCk7CiAgICAgIFAuZW1pdCgiY29sbGFiOnN0YXRl +IiwgUC5jb2xsYWJTdGF0ZSk7CiAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgfQogIGZ1 +bmN0aW9uIGFycih2KSB7IHJldHVybiB2ID09IG51bGwgPyBbXSA6IChPYmplY3QucHJvdG90eXBl +LnRvU3RyaW5nLmNhbGwodikgPT09ICJbb2JqZWN0IEFycmF5XSIgPyB2IDogW3ZdKTsgfQoKICAv +KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLSBBa3Rpdml0YWV0cy0vWndpc2NoZW5zdGFuZHMtUG9wb3ZlciAqLwogIGZ1bmN0aW9uIHVw +ZGF0ZUJ1dHRvbigpIHsKICAgIHZhciBidG4gPSAkKCIjY29sbGFiLWJ0biIpOyBpZiAoIWJ0bikg +cmV0dXJuOwogICAgdmFyIG90aGVycyA9IChQLmNvbGxhYlN0YXRlLmxvY2tzIHx8IFtdKS5maWx0 +ZXIoZnVuY3Rpb24gKGxrKSB7IHJldHVybiAhKGxrLmF1dGhvciAmJiBQLnVzZXIgJiYgbGsuYXV0 +aG9yLnRvTG93ZXJDYXNlKCkgPT09IFN0cmluZyhQLnVzZXIpLnRvTG93ZXJDYXNlKCkpOyB9KTsK +ICAgIGJ0bi5jbGFzc0xpc3QudG9nZ2xlKCJob3QiLCBvdGhlcnMubGVuZ3RoID4gMCk7CiAgICBi +dG4uc2V0QXR0cmlidXRlKCJ0aXRsZSIsIG90aGVycy5sZW5ndGggPyAob3RoZXJzLmxlbmd0aCAr +ICIgYmVhcmJlaXRlbiBnZXJhZGUiKSA6ICJBa3Rpdml0w6R0ICYgWndpc2NoZW5zdMOkbmRlIik7 +CiAgfQogIFAudG9nZ2xlQ29sbGFiUGFuZWwgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgZXggPSAk +KCIjY29sbGFiLXBvcCIpOyBpZiAoZXgpIHsgZXgucmVtb3ZlKCk7IHJldHVybjsgfQogICAgdmFy +IHBvcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXBvcCIsIGlkOiAiY29sbGFiLXBvcCIg +fSk7CiAgICBwb3AuYXBwZW5kQ2hpbGQoc2VjdGlvbigiV2lyZCBnZXJhZGUgYmVhcmJlaXRldCIs +IChQLmNvbGxhYlN0YXRlLmxvY2tzIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGxrKSB7CiAgICAgIHJl +dHVybiByb3coaWMoImVkaXQiKSwgbGsubGFiZWwgfHwgbGsudGFyZ2V0SWQsIChsay5uYW1lIHx8 +IGxrLmF1dGhvcikgKyAiIMK3ICIgKyAobGsudHMgfHwgIiIpLCBudWxsKTsKICAgIH0pKSk7CiAg +ICBwb3AuYXBwZW5kQ2hpbGQoc2VjdGlvbigiT2ZmZW5lIFp3aXNjaGVuc3TDpG5kZSIsIChQLmNv +bGxhYlN0YXRlLmRyYWZ0cyB8fCBbXSkubWFwKGZ1bmN0aW9uIChkKSB7CiAgICAgIHJldHVybiBy +b3coaWMoImluYm94IiksIGRyYWZ0TGFiZWwoZCksIChkLm5hbWUgfHwgZC5hdXRob3IpICsgIiDC +tyAiICsgKGQudXBkYXRlZEF0IHx8ICIiKSwgZnVuY3Rpb24gKCkgeyByZXN0b3JlRHJhZnQoZCk7 +IH0pOwogICAgfSkpKTsKICAgIHBvcC5hcHBlbmRDaGlsZChzZWN0aW9uKCJMZXR6dGUgw4RuZGVy +dW5nZW4iLCAoUC5jb2xsYWJTdGF0ZS5hY3Rpdml0eSB8fCBbXSkuc2xpY2UoMCwgMTIpLm1hcChm +dW5jdGlvbiAoYSkgewogICAgICByZXR1cm4gcm93KGljKCJjbG9jayIpLCAoYS5hY3Rpb24gPT09 +ICJwdWJsaXNoIiA/ICJWZXLDtmZmZW50bGljaHQiIDogYS5hY3Rpb24pICsgIjogIiArIChhLnRh +cmdldCB8fCAiIiksIChhLm5hbWUgfHwgYS51c2VyKSArICIgwrcgIiArIChhLnRzIHx8ICIiKSwg +bnVsbCk7CiAgICB9KSkpOwogICAgdmFyIGJ0biA9ICQoIiNjb2xsYWItYnRuIik7IGRvY3VtZW50 +LmJvZHkuYXBwZW5kQ2hpbGQocG9wKTsKICAgIGlmIChidG4pIHsgdmFyIHIgPSBidG4uZ2V0Qm91 +bmRpbmdDbGllbnRSZWN0KCk7IHBvcC5zdHlsZS50b3AgPSAoci5ib3R0b20gKyA4KSArICJweCI7 +IHBvcC5zdHlsZS5yaWdodCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtIHIucmlnaHQpICsgInB4Ijsg +fQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo +ImNsaWNrIiwgb2ZmQ2xpY2spOyB9LCAwKTsKICB9OwogIGZ1bmN0aW9uIG9mZkNsaWNrKGUpIHsg +aWYgKCFlLnRhcmdldC5jbG9zZXN0KCIjY29sbGFiLXBvcCIpICYmICFlLnRhcmdldC5jbG9zZXN0 +KCIjY29sbGFiLWJ0biIpKSB7IHZhciBwID0gJCgiI2NvbGxhYi1wb3AiKTsgaWYgKHApIHAucmVt +b3ZlKCk7IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb2ZmQ2xpY2spOyB9 +IH0KICBmdW5jdGlvbiBzZWN0aW9uKHRpdGxlLCByb3dzKSB7CiAgICB2YXIgcyA9IGVsKCJkaXYi +LCB7IGNsYXNzOiAiY29sbGFiLXNlYyIgfSwgW2VsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXNl +Yy1oIiwgdGV4dDogdGl0bGUgfSldKTsKICAgIGlmICghcm93cy5sZW5ndGgpIHMuYXBwZW5kQ2hp +bGQoZWwoImRpdiIsIHsgY2xhc3M6ICJtdXRlZCBjb2xsYWItZW1wdHkiLCB0ZXh0OiAi4oCUIiB9 +KSk7CiAgICBlbHNlIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAocikgeyBzLmFwcGVuZENoaWxkKHIp +OyB9KTsKICAgIHJldHVybiBzOwogIH0KICBmdW5jdGlvbiByb3coaWNvbiwgdGl0bGUsIHN1Yiwg +b25jbGljaykgewogICAgcmV0dXJuIGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXJvdyIgKyAo +b25jbGljayA/ICIgYWN0IiA6ICIiKSwgb25jbGljazogb25jbGljayB8fCBudWxsIH0sIFsKICAg +ICAgZWwoInNwYW4iLCB7IGNsYXNzOiAiY29sbGFiLXJvdy1pYyIsIGh0bWw6IGljb24gfSksCiAg +ICAgIGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXJvdy1tYWluIiB9LCBbZWwoImRpdiIsIHsg +Y2xhc3M6ICJjb2xsYWItcm93LXQiLCB0ZXh0OiB0aXRsZSB9KSwgZWwoImRpdiIsIHsgY2xhc3M6 +ICJjb2xsYWItcm93LXMiLCB0ZXh0OiBzdWIgfSldKQogICAgXSk7CiAgfQogIGZ1bmN0aW9uIGRy +YWZ0TGFiZWwoZCkgewogICAgdmFyIHAgPSBkLnBheWxvYWQgfHwge307CiAgICByZXR1cm4gKHAu +dGl0bGUgfHwgZC50YXJnZXRJZCB8fCBkLmtpbmQpICsgKGQua2luZCA9PT0gImFydGljbGUiID8g +IiAoQXJ0aWtlbCkiIDogZC5raW5kID09PSAiYnVsbGV0aW4iID8gIiAoTWVsZHVuZykiIDogIiIp +OwogIH0KICBmdW5jdGlvbiByZXN0b3JlRHJhZnQoZCkgewogICAgdmFyIHAgPSAkKCIjY29sbGFi +LXBvcCIpOyBpZiAocCkgcC5yZW1vdmUoKTsKICAgIGlmIChkLmtpbmQgPT09ICJhcnRpY2xlIiAm +JiBQLm9wZW5BcnRpY2xlRGxnKSB7CiAgICAgIHZhciBpdGVtID0gbnVsbDsgaWYgKGQudGFyZ2V0 +SWQgIT09ICJhcnQ6bmV3IiAmJiBQLmZpbmROYXZJdGVtQnlJZCkgaXRlbSA9IFAuZmluZE5hdkl0 +ZW1CeUlkKGQudGFyZ2V0SWQucmVwbGFjZSgvXmFydDovLCAiIikpOwogICAgICBQLm9wZW5BcnRp +Y2xlRGxnKGl0ZW0pOyAgIC8vIGJlZ2luRWRpdCBiaWV0ZXQgZGVuIFp3aXNjaGVuc3RhbmQgenVy +IFdpZWRlcmhlcnN0ZWxsdW5nIGFuCiAgICB9IGVsc2UgaWYgKGQua2luZCA9PT0gImJ1bGxldGlu +IiAmJiBQLm9wZW5CdWxsZXRpbkRsZykgewogICAgICB2YXIgYiA9IG51bGw7CiAgICAgIGlmIChk +LnRhcmdldElkICE9PSAiYnVsbDpuZXciKSB7IHZhciBiaWQgPSBkLnRhcmdldElkLnJlcGxhY2Uo +L15idWxsOi8sICIiKTsgKFAuY29udGVudC5idWxsZXRpbnMgfHwgW10pLmZvckVhY2goZnVuY3Rp +b24gKHgpIHsgaWYgKCh4LmlkIHx8IHgudGl0bGUpID09PSBiaWQpIGIgPSB4OyB9KTsgfQogICAg +ICBQLm9wZW5CdWxsZXRpbkRsZyhiKTsKICAgIH0KICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEluaXQgKGF1cyBtYWlu +LnNldEVkaXRvcikgKi8KICBQLmluaXRDb2xsYWIgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIVAu +bGl2ZSkgcmV0dXJuOwogICAgd3JhcEVkaXRvcnMoKTsKICAgIHZhciBidG4gPSAkKCIjY29sbGFi +LWJ0biIpOwogICAgaWYgKGJ0biAmJiAhYnRuLmRhdGFzZXQud2lyZWQpIHsgYnRuLmRhdGFzZXQu +d2lyZWQgPSAiMSI7IGJ0bi5zdHlsZS5kaXNwbGF5ID0gIiI7IGJ0bi5hZGRFdmVudExpc3RlbmVy +KCJjbGljayIsIFAudG9nZ2xlQ29sbGFiUGFuZWwpOyB9CiAgICBwb2xsKCk7CiAgICBpZiAocG9s +bFRpbWVyKSBjbGVhckludGVydmFsKHBvbGxUaW1lcik7CiAgICBwb2xsVGltZXIgPSBzZXRJbnRl +cnZhbChmdW5jdGlvbiAoKSB7IGlmICghZG9jdW1lbnQuaGlkZGVuKSBwb2xsKCk7IH0sIDEyMDAw +KTsKICAgIFAub24oInJlbmRlcmVkIiwgZnVuY3Rpb24gKCkgeyBkZWNvcmF0ZVByZXNlbmNlKCk7 +IH0pOyAgIC8vIG5hY2ggUmUtUmVuZGVyIEJhZGdlcyBuZXUgc2V0emVuCiAgICBQLm9uKCJwdWJs +aXNoZWQiLCBmdW5jdGlvbiAoKSB7IHNldFRpbWVvdXQocG9sbCwgNDAwKTsgfSk7CiAgfTsKCn0p +KHdpbmRvdy5QKTsK +### FILE: assets/js/core/core.js | 53710 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgY29yZS5qcwogICBGdW5kYW1lbnQ6 +IE5hbWVzcGFjZSBQLCBJY29ucywgSGVsZmVyLCBTdGF0ZSwgUGVyc2lzdGVueiwgVGhlbWUsIFRv +YXN0LgogICBLbGFzc2lzY2hlcyBTY3JpcHQgKGtlaW4gRVMtTW9kdWwpIOKGkiBmaWxlOi8vLXRh +dWdsaWNoLiBXaXJkIHZvciBhbGxlbgogICBhbmRlcmVuIFAuKi1Nb2R1bGVuIGdlbGFkZW4uCiAg +ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PSAqLwp3aW5kb3cuUCA9IHdpbmRvdy5QIHx8IHt9OwooZnVuY3Rpb24gKFAp +IHsKICAidXNlIHN0cmljdCI7CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50LUJ1cyAoUGhhc2UgMikKICAgICBFbnRr +b3BwZWx0ICJldHdhcyBoYXQgc2ljaCBnZWFlbmRlcnQiIHZvbiAid2VyIHJlYWdpZXJ0IGRhcmF1 +ZiIuIE1vZHVsZQogICAgIGtvZW5uZW4gdWViZXIgUC5vbiguLi4pIHJlYWdpZXJlbiwgb2huZSBk +YXNzIGRpZSBhZW5kZXJuZGUgU3RlbGxlIHNpZSBrZW5udC4KICAgICBGdW5kYW1lbnQgZnVlciBQ +aGFzZSA0IChBdXRvc2F2ZS9Ba3Rpdml0YWV0L1ByYWVzZW56KS4gKi8KICB2YXIgc3VicyA9IHt9 +OwogIFAub24gPSBmdW5jdGlvbiAoZXZ0LCBmbikgeyAoc3Vic1tldnRdIHx8IChzdWJzW2V2dF0g +PSBbXSkpLnB1c2goZm4pOyByZXR1cm4gZm47IH07CiAgUC5vZmYgPSBmdW5jdGlvbiAoZXZ0LCBm +bikgeyB2YXIgYSA9IHN1YnNbZXZ0XTsgaWYgKCFhKSByZXR1cm47IHZhciBpID0gYS5pbmRleE9m +KGZuKTsgaWYgKGkgPj0gMCkgYS5zcGxpY2UoaSwgMSk7IH07CiAgUC5lbWl0ID0gZnVuY3Rpb24g +KGV2dCwgZGF0YSkgeyB2YXIgYSA9IHN1YnNbZXZ0XTsgaWYgKGEpIGEuc2xpY2UoKS5mb3JFYWNo +KGZ1bmN0aW9uIChmbikgeyB0cnkgeyBmbihkYXRhLCBldnQpOyB9IGNhdGNoIChlKSB7fSB9KTsg +fTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0gQ29udGVudC1UeXBlLVJlZ2lzdHJ5IChQaGFzZSAzKQogICAgIEVpbiBPcnQs +IGFuIGRlbSBzaWNoIEluaGFsdHN0eXBlbiBtaXQgU3VjaGUgLyBBLVogKGJ1aWxkSW5kZXgpLCBM +aXZlLVN1Y2hlCiAgICAgKHNlYXJjaExpdmUpIHVuZCBzcGFldGVyIFJlbmRlci9FZGl0b3IgYW5t +ZWxkZW4uIEJlc3RlaGVuZGUgVHlwZW4KICAgICByZWdpc3RyaWVyZW4gc2ljaCBpbiBpaHJlbiBN +b2R1bGVuOyBuZXVlIFR5cGVuIChQaGFzZSA2OiBUZXJtaW5lLCBLb250YWt0ZSwKICAgICBEb3du +bG9hZHMsIExpc3RlbikgaGFlbmdlbiBzaWNoIGhpZXIgZWluLCBvaG5lIHNlYXJjaC5qcyB6dSBh +ZW5kZXJuLgogICAgICAgZGVmID0geyBrZXksIGxhYmVsLCBpY29uLAogICAgICAgICAgICAgICBi +dWlsZEluZGV4KHB1c2gpLCBzZWFyY2hMaXZlKHRva3MsIG5xKSwgICAgIC8vIG9wdGlvbmFsCiAg +ICAgICAgICAgICAgIHJlbmRlcihpdGVtKSwgZWRpdG9yKGl0ZW18bnVsbCksIG1pblJvbGUgfSAg +Ly8gb3B0aW9uYWwgKFBoYXNlIDYpICovCiAgUC50eXBlcyA9IFtdOwogIFAucmVnaXN0ZXJUeXBl +ID0gZnVuY3Rpb24gKGRlZikgeyBpZiAoZGVmICYmIGRlZi5rZXkpIFAudHlwZXMucHVzaChkZWYp +OyByZXR1cm4gZGVmOyB9OwogIFAudHlwZUJ5S2V5ID0gZnVuY3Rpb24gKGspIHsgZm9yICh2YXIg +aSA9IDA7IGkgPCBQLnR5cGVzLmxlbmd0aDsgaSsrKSBpZiAoUC50eXBlc1tpXS5rZXkgPT09IGsp +IHJldHVybiBQLnR5cGVzW2ldOyByZXR1cm4gbnVsbDsgfTsKICBQLmVhY2hUeXBlID0gZnVuY3Rp +b24gKGZuKSB7IFAudHlwZXMuZm9yRWFjaChmbik7IH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEljb25zIChpbmxpbmUg +U1ZHKSAqLwogIHZhciBJID0gewogICAgc2VhcmNoOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIg +ZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tl +LWxpbmVjYXA9InJvdW5kIj48Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI3Ii8+PHBhdGggZD0i +bTIxIDIxLTQuMy00LjMiLz48L3N2Zz4nLAogICAgYXo6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0 +IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJv +a2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZo +MTNNMyAxMmgxM00zIDE4aDkiLz48cGF0aCBkPSJtMTcgOCAzLTMgMyAzTTIwIDV2MTQiLz48L3N2 +Zz4nLAogICAgZWRpdDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9r +ZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIg +c3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYu +NSAzLjVhMi4xIDIuMSAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNFoiLz48L3N2Zz4nLAogICAgc3Vu +Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29s +b3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48Y2lyY2xlIGN4PSIx +MiIgY3k9IjEyIiByPSI0Ii8+PHBhdGggZD0iTTEyIDJ2Mk0xMiAyMHYyTTQuOSA0LjlsMS40IDEu +NE0xNy43IDE3LjdsMS40IDEuNE0yIDEyaDJNMjAgMTJoMk00LjkgMTkuMWwxLjQtMS40TTE3Ljcg +Ni4zbDEuNC0xLjQiLz48L3N2Zz4nLAogICAgbW9vbjonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQi +IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9r +ZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIxIDEy +LjhBOSA5IDAgMSAxIDExLjIgMyA3IDcgMCAwIDAgMjEgMTIuOFoiLz48L3N2Zz4nLAogICAgcGx1 +czonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENv +bG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0aCBkPSJN +MTIgNXYxNE01IDEyaDE0Ii8+PC9zdmc+JywKICAgIHBpbjonPHN2ZyB2aWV3Qm94PSIwIDAgMjQg +MjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0 +cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEy +IDE3djVNOSAzaDZsLTEgNyAzIDNIN2wzLTMtMS03WiIvPjwvc3ZnPicsCiAgICB0cmFzaDonPHN2 +ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBz +dHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJy +b3VuZCI+PHBhdGggZD0iTTMgNmgxOE04IDZWNGg4djJNNiA2bDEgMTRoMTBsMS0xNCIvPjwvc3Zn +PicsCiAgICB4Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJj +dXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0 +aCBkPSJNMTggNiA2IDE4TTYgNmwxMiAxMiIvPjwvc3ZnPicsCiAgICBjaGVjazonPHN2ZyB2aWV3 +Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Ut +d2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k +Ij48cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiLz48L3N2Zz4nLAogICAgZXh0Oic8c3ZnIHZpZXdC +b3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13 +aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48 +cGF0aCBkPSJNMTQgNGg2djZNMjAgNCA5IDE1TTE5IDEzdjZhMSAxIDAgMCAxLTEgMUg1YTEgMSAw +IDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDYiLz48L3N2Zz4nLAogICAgY2hldjonPHN2ZyB2aWV3 +Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Ut +d2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k +Ij48cGF0aCBkPSJtOSA2IDYgNi02IDYiLz48L3N2Zz4nLAogICAgYmFjazonPHN2ZyB2aWV3Qm94 +PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lk +dGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBh +dGggZD0iTTE5IDEySDVNMTIgMTlsLTctNyA3LTciLz48L3N2Zz4nLAogICAgdXNlcjonPHN2ZyB2 +aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJv +a2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3Vu +ZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSI4IiByPSIzLjUiLz48cGF0aCBkPSJNNSAyMGMwLTMuMyAz +LjEtNiA3LTZzNyAyLjcgNyA2Ii8+PC9zdmc+JywKICAgIGNsb2NrOic8c3ZnIHZpZXdCb3g9IjAg +MCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0i +MiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xl +IGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PHBhdGggZD0iTTEyIDd2NWwzIDIiLz48L3N2Zz4nLAog +ICAgc3RhcjonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ry +b2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWpvaW49InJv +dW5kIj48cGF0aCBkPSJtMTIgMyAyLjYgNS40IDUuOS44LTQuMyA0LjEgMSA1LjlMMTIgMTYuOSA2 +LjggMTkuMmwxLTUuOUwzLjUgOS4ybDUuOS0uOFoiLz48L3N2Zz4nLAogICAgc3Rhck86Jzxzdmcg +dmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ry +b2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJtMTIgMyAyLjYg +NS40IDUuOS44LTQuMyA0LjEgMSA1LjlMMTIgMTYuOSA2LjggMTkuMmwxLTUuOUwzLjUgOS4ybDUu +OS0uOFoiLz48L3N2Zz4nLAogICAgZ3JpZDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9 +Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5l +Y2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMyIgeT0iMyIgd2lk +dGg9IjciIGhlaWdodD0iNyIgcng9IjEiLz48cmVjdCB4PSIxNCIgeT0iMyIgd2lkdGg9IjciIGhl +aWdodD0iNyIgcng9IjEiLz48cmVjdCB4PSIzIiB5PSIxNCIgd2lkdGg9IjciIGhlaWdodD0iNyIg +cng9IjEiLz48cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIi8+ +PC9zdmc+JywKICAgIG1hcDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0 +cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3Vu +ZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTkgNCAzIDZ2MTRsNi0yIDYgMiA2 +LTJWNGwtNiAyLTYtMloiLz48cGF0aCBkPSJNOSA0djE0TTE1IDZ2MTQiLz48L3N2Zz4nLAogICAg +YWxlcnQ6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJl +bnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1s +aW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiA5djRNMTIgMTdoLjAxTTEwLjMgMy45IDIuNCAx +OGEyIDIgMCAwIDAgMS43IDNoMTUuOGEyIDIgMCAwIDAgMS43LTNMMTMuNyAzLjlhMiAyIDAgMCAw +LTMuNCAwWiIvPjwvc3ZnPicsCiAgICBib2x0Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmls +bD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTMgMiA0LjUgMTMuNUgxMWwtMSA4LjVMMTkuNSAx +MEgxM1oiLz48L3N2Zz4nLAogICAgZG9jOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0i +bm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVj +YXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTQgM0g3YTIgMiAw +IDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjhaIi8+PHBhdGggZD0i +TTE0IDN2NWg1TTkgMTNoNk05IDE3aDYiLz48L3N2Zz4nLAogICAgbGluazonPHN2ZyB2aWV3Qm94 +PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lk +dGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBh +dGggZD0iTTEwIDEzYTUgNSAwIDAgMCA3IDBsMi0yYTUgNSAwIDAgMC03LTdsLTEgMSIvPjxwYXRo +IGQ9Ik0xNCAxMWE1IDUgMCAwIDAtNyAwbC0yIDJhNSA1IDAgMCAwIDcgN2wxLTEiLz48L3N2Zz4n +LAogICAgbWVudTonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0i +Y3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBh +dGggZD0iTTMgNmgxOE0zIDEyaDE4TTMgMThoMTgiLz48L3N2Zz4nLAogICAgcGFuZWxMOic8c3Zn +IHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0 +cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJv +dW5kIj48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMTgiIGhlaWdodD0iMTYiIHJ4PSIyIi8+PHBh +dGggZD0iTTkgNHYxNiIvPjwvc3ZnPicsCiAgICBwYW5lbFI6Jzxzdmcgdmlld0JveD0iMCAwIDI0 +IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBz +dHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMi +IHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNiIgcng9IjIiLz48cGF0aCBkPSJNMTUgNHYxNiIv +Pjwvc3ZnPicsCiAgICB1cGxvYWQ6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25l +IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0i +cm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAxNlY0TTcgOWw1LTUg +NSA1TTUgMjBoMTQiLz48L3N2Zz4nLAogICAgZG93bmxvYWQ6Jzxzdmcgdmlld0JveD0iMCAwIDI0 +IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBz +dHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0x +MiA0djEyTTcgMTFsNSA1IDUtNU01IDIwaDE0Ii8+PC9zdmc+JywKICAgIHByaW50Oic8c3ZnIHZp +ZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9r +ZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k +Ij48cGF0aCBkPSJNNiA5VjNoMTJ2NiIvPjxyZWN0IHg9IjUiIHk9IjEzIiB3aWR0aD0iMTQiIGhl +aWdodD0iOCIgcng9IjEiLz48cGF0aCBkPSJNNiAxN0g0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAg +MCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMmgtMiIvPjwvc3ZnPicsCiAg +ICBpbmJveDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3Vy +cmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJv +a2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyAxMmg1bDIgM2g0bDItM2g1Ii8+PHBhdGgg +ZD0iTTUgNmgxNGwyIDZ2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtNloiLz48L3N2 +Zz4nLAogICAgYXJ0aWNsZTonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0 +cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3Vu +ZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTQgNGgxNnYxNkg0eiIvPjxwYXRo +IGQ9Ik04IDhoOE04IDEyaDhNOCAxNmg1Ii8+PC9zdmc+JywKICAgIGJvbGQ6Jzxzdmcgdmlld0Jv +eD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdp +ZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+ +PHBhdGggZD0iTTcgNWg2YTMuNSAzLjUgMCAwIDEgMCA3SDd6TTcgMTJoN2EzLjUgMy41IDAgMCAx +IDAgN0g3eiIvPjwvc3ZnPicsCiAgICBpdGFsaWM6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBm +aWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2Ut +bGluZWNhcD0icm91bmQiPjxwYXRoIGQ9Ik0xOSA1aC03TTE0IDE5SDZNMTUgNSA5IDE5Ii8+PC9z +dmc+JywKICAgIHVsaXN0Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ry +b2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5k +IiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOCA2aDEyTTggMTJoMTJNOCAxOGgx +MiIvPjxjaXJjbGUgY3g9IjMuNSIgY3k9IjYiIHI9IjEuMyIgZmlsbD0iY3VycmVudENvbG9yIi8+ +PGNpcmNsZSBjeD0iMy41IiBjeT0iMTIiIHI9IjEuMyIgZmlsbD0iY3VycmVudENvbG9yIi8+PGNp +cmNsZSBjeD0iMy41IiBjeT0iMTgiIHI9IjEuMyIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+ +JywKICAgIG9saXN0Oic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tl +PSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBz +dHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTAgNmgxME0xMCAxMmgxME0xMCAxOGgx +ME00IDZoMXYzTTQgMTJoMmwtMiAzaDIiLz48L3N2Zz4nLAogICAgaGVhZGluZzonPHN2ZyB2aWV3 +Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Ut +d2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5k +Ij48cGF0aCBkPSJNNiA0djE2TTE4IDR2MTZNNiAxMmgxMiIvPjwvc3ZnPicsCiAgICBzaGllbGQ6 +Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xv +ciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9p +bj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAzIDUgNnY1YzAgNC40IDMgOC40IDcgOS41IDQtMS4xIDct +NS4xIDctOS41VjZaIi8+PHBhdGggZD0ibTkgMTIgMiAyIDQtNCIvPjwvc3ZnPicKICB9OwogIFAu +aWMgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gSVtuXSB8fCAiIjsgfTsKICBQLkkgPSBJOwoKICAv +KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLSBET00tSGVsZmVyICovCiAgUC5lbCA9IGZ1bmN0aW9uICh0YWcsIGF0dHJzLCBraWRzKSB7 +CiAgICB2YXIgbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsKICAgIGlmIChhdHRycykg +Zm9yICh2YXIgayBpbiBhdHRycykgewogICAgICBpZiAoayA9PT0gImNsYXNzIikgbi5jbGFzc05h +bWUgPSBhdHRyc1trXTsKICAgICAgZWxzZSBpZiAoayA9PT0gImh0bWwiKSBuLmlubmVySFRNTCA9 +IGF0dHJzW2tdOwogICAgICBlbHNlIGlmIChrID09PSAidGV4dCIpIG4udGV4dENvbnRlbnQgPSBh +dHRyc1trXTsKICAgICAgZWxzZSBpZiAoay5zbGljZSgwLCAyKSA9PT0gIm9uIikgbi5hZGRFdmVu +dExpc3RlbmVyKGsuc2xpY2UoMiksIGF0dHJzW2tdKTsKICAgICAgZWxzZSBpZiAoYXR0cnNba10g +IT0gbnVsbCkgbi5zZXRBdHRyaWJ1dGUoaywgYXR0cnNba10pOwogICAgfQogICAgKGtpZHMgfHwg +W10pLmZvckVhY2goZnVuY3Rpb24gKGMpIHsgaWYgKGMpIG4uYXBwZW5kQ2hpbGQodHlwZW9mIGMg +PT09ICJzdHJpbmciID8gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYykgOiBjKTsgfSk7CiAgICBy +ZXR1cm4gbjsKICB9OwogIFAuJCA9IGZ1bmN0aW9uIChzLCByKSB7IHJldHVybiAociB8fCBkb2N1 +bWVudCkucXVlcnlTZWxlY3RvcihzKTsgfTsKICBQLiQkID0gZnVuY3Rpb24gKHMsIHIpIHsgcmV0 +dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKChyIHx8IGRvY3VtZW50KS5xdWVyeVNlbGVj +dG9yQWxsKHMpKTsgfTsKICBQLmRlYWNjZW50ID0gZnVuY3Rpb24gKHMpIHsgcmV0dXJuIChzIHx8 +ICIiKS5ub3JtYWxpemUoIk5GRCIpLnJlcGxhY2UoL1vMgC3Nr10vZywgIiIpLnJlcGxhY2UoL8Of +L2csICJzcyIpLnRvTG93ZXJDYXNlKCk7IH07CiAgUC5lc2NhcGVIdG1sID0gZnVuY3Rpb24gKHMp +IHsgcmV0dXJuIChzIHx8ICIiKS5yZXBsYWNlKC9bJjw+Il0vZywgZnVuY3Rpb24gKGMpIHsgcmV0 +dXJuIHsgIiYiOiAiJmFtcDsiLCAiPCI6ICImbHQ7IiwgIj4iOiAiJmd0OyIsICciJzogIiZxdW90 +OyIgfVtjXTsgfSk7IH07CiAgUC5yZWFkID0gZnVuY3Rpb24gKGssIGQpIHsgdHJ5IHsgdmFyIHYg +PSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrKTsgcmV0dXJuIHYgPyBKU09OLnBhcnNlKHYpIDogZDsg +fSBjYXRjaCAoZSkgeyByZXR1cm4gZDsgfSB9OwogIFAud3JpdGUgPSBmdW5jdGlvbiAoaywgdikg +eyB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrLCBKU09OLnN0cmluZ2lmeSh2KSk7IH0gY2F0 +Y2ggKGUpIHt9IH07CiAgUC51aWQgPSBmdW5jdGlvbiAocCkgeyByZXR1cm4gKHAgfHwgIngiKSAr +ICItIiArIERhdGUubm93KCkudG9TdHJpbmcoMzYpICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygz +Nikuc2xpY2UoMiwgNSk7IH07CiAgUC5jbG9uZSA9IGZ1bmN0aW9uIChvKSB7IHJldHVybiBKU09O +LnBhcnNlKEpTT04uc3RyaW5naWZ5KG8pKTsgfTsKICAvLyBaZW50cmFsZSBVUkwtU2NoZW1hLUFs +bG93bGlzdCAoaWRlbnRpc2NoIHp1bSBTYW5pdGl6ZXItaHJlZi1DaGVjayBpbiBuYXYuanMpIOKA +lAogIC8vIGVpbmUgUXVlbGxlIGRlciBXYWhyaGVpdC4gTGllZmVydCBkaWUgVVJMIHp1cnVlY2ss +IHdlbm4gc2ljaGVyLCBzb25zdCAiIi4KICAvLyBCbG9ja3QgamF2YXNjcmlwdDovZGF0YTovZmls +ZTogdS4gYS4gZnVlciBGZWVkLUxpbmtzLCBQYW5lbC1MaW5rcywgd2luZG93Lm9wZW4uCiAgUC5z +YWZlVXJsID0gZnVuY3Rpb24gKHUpIHsKICAgIHUgPSBTdHJpbmcodSA9PSBudWxsID8gIiIgOiB1 +KS50cmltKCk7CiAgICByZXR1cm4gKC9eKGh0dHBzPzp8bWFpbHRvOnxkb2t1bWVudGVcL3xcL1wv +fFwuXC5cL3wjKS9pLnRlc3QodSkgfHwgL15wb3J0YWw6W1x3LV0rJC9pLnRlc3QodSkpID8gdSA6 +ICIiOwogIH07CgogIC8vIC0tLSBXaW5kb3dzLVNoYXJlLS9PcmRuZXItUGZhZGUgKE5VUiBmdWVy +IHN0cnVrdHVyaWVydGUgT3JkbmVyLUtub3RlbiwgTklDSFQgZnVlciBmcmVpZXMKICAvLyBBcnRp +a2VsLUhUTUwhKS4gRGVyIFNhbml0aXplci9zYWZlVXJsIGxhc3NlbiBmaWxlOi9VTkMgYmV3dXNz +dCBOSUNIVCB6dSDigJQgZWluIE9yZG5lci1Lbm90ZW4KICAvLyB0cmFlZ3Qgc2VpbmVuIFBmYWQg +YWxzIGVpZ2VuZXMgRGF0ZW5mZWxkIChhZG1pbi0vcmVkYWt0aW9uZWxsIGdlcGZsZWd0KSwgbmlj +aHQgaW0gQm9keS4KICAvLyBFcmxhdWJ0IG51ciBQZmFkZSBhdWYgZGVuIGJla2FubnRlbiBCZWhv +ZXJkZW4tU2hhcmUgKGtlaW4gYmVsaWViaWdlcyBmaWxlOikuICovCiAgUC5zYWZlRm9sZGVyUGF0 +aCA9IGZ1bmN0aW9uIChwKSB7CiAgICBwID0gU3RyaW5nKHAgPT0gbnVsbCA/ICIiIDogcCkudHJp +bSgpOwogICAgLy8gVU5DIFxcaG9zdFwuLiAgfCAgcHJvdG9rb2xsLXJlbGF0aXYgLy9ob3N0Ly4u +ICB8ICBmaWxlOi8vLy4uICBtaXQgU2hhcmUtSG9zdAogICAgaWYgKC9wb2xpemVpXC5ucndcLmRl +L2kudGVzdChwKSB8fCAvXlxcXFxbXHcuJC1dK1xcLy50ZXN0KHApKSB7CiAgICAgIGlmICgvXihc +XFxcfFwvXC98ZmlsZTopL2kudGVzdChwKSkgcmV0dXJuIHA7CiAgICB9CiAgICBpZiAoL15bQS1a +YS16XTpbXFxcL10vLnRlc3QocCkpIHJldHVybiBwOyAgIC8vIGdlbWFwcHRlcyBOZXR6bGF1Zndl +cmsgKHouIEIuIE86XOKApikKICAgIHJldHVybiAiIjsKICB9OwogIC8vIFNoYXJlLUxJTksgaW0g +QXJ0aWtlbC1IVE1MIChhLWhyZWYpOiBOVVIgYXVmIGRlbiBCZWhvZXJkZW4tSG9zdCBwb2xpemVp +Lm5ydy5kZSwgYWxzIFVOQwogIC8vIChcXHBvbGl6ZWkubnJ3LmRlXC4uKSBvZGVyIHByb3Rva29s +bC1yZWxhdGl2ICgvL3BvbGl6ZWkubnJ3LmRlLy4uKS4gU3RyZW5nZXIgYWxzCiAgLy8gc2FmZUZv +bGRlclBhdGggKGhvc3QtZ2VidW5kZW4pIC0+IGVybGF1YnQgbWlncmllcnRlIERva3UtVmVyd2Vp +c2UgYXVmIEdlc2Nod2lzdGVyLVNoYXJlLQogIC8vIE9yZG5lciwgb2huZSBiZWxpZWJpZ2UgZmls +ZTovVU5DLVppZWxlIHp1IG9lZmZuZW4uIFdpcmQgaW0gU2FuaXRpemVyIHp1c2FldHpsaWNoIHp1 +IHNhZmVVcmwKICAvLyBha3plcHRpZXJ0OyBzb2xjaGUgTGlua3MgYmVrb21tZW4gdGFyZ2V0PV9i +bGFuayAob2VmZm5lbiBpbSBEYXRlaS1FeHBsb3Jlci9JRSkuCiAgUC5zYWZlU2hhcmVIcmVmID0g +ZnVuY3Rpb24gKHUpIHsKICAgIHUgPSBTdHJpbmcodSA9PSBudWxsID8gIiIgOiB1KS50cmltKCk7 +CiAgICBpZiAoL14oXFxcXHxcL1wvKXBvbGl6ZWlcLm5yd1wuZGVbXFxcL10vaS50ZXN0KHUpKSBy +ZXR1cm4gdTsgICAvLyBCZWhvZXJkZW4tU2hhcmUgKFVOQy9wcm90b2tvbGwtcmVsLikKICAgIGlm +ICgvXltBLVphLXpdOltcXFwvXS8udGVzdCh1KSkgcmV0dXJuIHU7ICAgICAgICAgICAgICAgICAg +ICAgICAvLyBnZW1hcHB0ZXMgTmV0emxhdWZ3ZXJrCiAgICByZXR1cm4gIiI7CiAgfTsKCiAgLy8g +UGZhZCAtPiBpZnJhbWUtL0xpbmstWmllbC4gQmVob2VyZGVuLVNoYXJlIGFscyBVTkMgKEJhY2tz +bGFzaGVzKTsgaW0gSUUtTW9kdXMgemVpZ3QgZGFzCiAgLy8gZGllIFZlcnplaWNobmlzbGlzdGUs +IE9mZmljZS1EYXRlaWVuIG9lZmZuZW4gcmVhZC13cml0ZSBkaXJla3QgaW0gU2hhcmUuCiAgLy8g +SElOV0VJUzogZXhha3RlIFVSTC1Gb3JtIChVTkMgdnMuIGZpbGU6Ly8vLy8pIGVyc3QgYW0gZWNo +dGVuIElFLUFyYmVpdHNwbGF0eiBmaW5hbCBwcnVlZmVuLgogIFAuZm9sZGVyU3JjID0gZnVuY3Rp +b24gKHApIHsKICAgIHAgPSBQLnNhZmVGb2xkZXJQYXRoKHApOwogICAgaWYgKCFwKSByZXR1cm4g +IiI7CiAgICBpZiAoL15cL1wvLy50ZXN0KHApICYmICEvXlwvXC9cLy8udGVzdChwKSkgcmV0dXJu +ICJcXFxcIiArIHAuc2xpY2UoMikucmVwbGFjZSgvXC8vZywgIlxcIik7ICAvLyAvL2hvc3QvLi4g +LT4gXFxob3N0XC4uCiAgICByZXR1cm4gcDsKICB9OwoKICAvLyBEYXRlbiBzaWNoZXIgaW4gZWlu +ZW4gPHNjcmlwdD4tQmxvY2sgZWluYmV0dGVuOiBKU09OLnN0cmluZ2lmeSBlc2NhcGVkIHdlZGVy +ICI8L3NjcmlwdCIKICAvLyBub2NoICI8IS0tIiBub2NoIGRpZSBaZWlsZW50cmVubmVyIFUrMjAy +OC9VKzIwMjkg4oCUIHNvbnN0IGJyaWNodCBkYXMgRGF0ZW5maWxlIGJlaW0gTGFkZW4KICAvLyAo +QXVzZmFsbCBmdWVyIEFMTEUgTGVzZXIpIGJ6dy4gd2FlcmUgZWluIFNjcmlwdC1JbmplY3Rpb24t +VmVrdG9yLiBFaW5lIFF1ZWxsZSBmdWVyIGFsbGUgU2VyaWFsaXplci4KICBQLmpzU2FmZSA9IGZ1 +bmN0aW9uIChzKSB7CiAgICByZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoLzxcLyhzY3JpcHQpL2dp +LCAiPFxcLyQxIikucmVwbGFjZSgvPCEtLS9nLCAiPFxcIS0tIikKICAgICAgLnJlcGxhY2UoL1x1 +MjAyOC9nLCAiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCAiXFx1MjAyOSIpOwogIH07Cgog +IC8vIERhdGVuZ2V0cmllYmVuZSBBcnRpa2VsLVp1c2F0emZlbGRlcjogRUlORSBEZWZpbml0aW9u +IHNwZWlzdCBFZGl0b3ItRm9ybXVsYXIgVU5EIEFuemVpZ2UuCiAgLy8gS2VybiAodGl0bGUvZGF0 +ZS9hdXRob3IvaHRtbCkgYmxlaWJ0IGZlc3Q7IGhpZXIgZGllIG9wdGlvbmFsZW4vZXJ3ZWl0ZXJ0 +ZW4gRmVsZGVyLgogIC8vIHR5cGU6IHNlbGVjdHx0YWdzfGRhdGV8dGV4dCDCtyBiYWRnZTogYWxz +IGZhcmJpZ2UgUGxha2V0dGUgYW56ZWlnZW4uCiAgUC5BUlRJQ0xFX0ZJRUxEUyA9IFsKICAgIHsg +a2V5OiAiY2xhc3NpZmljYXRpb24iLCBsYWJlbDogIkVpbnN0dWZ1bmciLCB0eXBlOiAic2VsZWN0 +Iiwgb3B0aW9uczogWyJvZmZlbiIsICJOZkQiLCAiVlMtTmZEIl0sIGJhZGdlOiB0cnVlIH0sCiAg +ICB7IGtleTogInRhZ3MiLCAgICAgICBsYWJlbDogIlNjaGxhZ3dvcnRlIChtaXQgS29tbWEgdHJl +bm5lbikiLCB0eXBlOiAidGFncyIgfSwKICAgIHsga2V5OiAidmFsaWRVbnRpbCIsIGxhYmVsOiAi +R8O8bHRpZyBiaXMiLCB0eXBlOiAiZGF0ZSIgfSwKICAgIHsga2V5OiAicmV2aWV3ZWRBdCIsIGxh +YmVsOiAiWnVsZXR6dCBnZXByw7xmdCIsIHR5cGU6ICJkYXRlIiB9LAogICAgeyBrZXk6ICJyZXZp +ZXdlZEJ5IiwgbGFiZWw6ICJHZXByw7xmdCB2b24iLCB0eXBlOiAidGV4dCIgfQogIF07CiAgUC5z +bHVnID0gZnVuY3Rpb24gKHMpIHsKICAgIHJldHVybiBQLmRlYWNjZW50KHMpLnJlcGxhY2UoL1te +YS16MC05XSsvZywgIl8iKS5yZXBsYWNlKC9eXyt8XyskL2csICIiKS5zbGljZSgwLCA2MCkgfHwg +ImFydGlrZWwiOwogIH07CiAgUC5mbXREYXRlID0gZnVuY3Rpb24gKGlzbykgewogICAgaWYgKCFp +c28pIHJldHVybiAiIjsKICAgIHZhciBwID0gU3RyaW5nKGlzbykuc2xpY2UoMCwgMTApLnNwbGl0 +KCItIik7CiAgICByZXR1cm4gcC5sZW5ndGggPT09IDMgPyBwWzJdICsgIi4iICsgcFsxXSArICIu +IiArIHBbMF0gOiBpc287CiAgfTsKICBQLmRvd25sb2FkID0gZnVuY3Rpb24gKGZpbGVuYW1lLCB0 +ZXh0LCBtaW1lKSB7CiAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFt0ZXh0XSwgeyB0eXBlOiAobWlt +ZSB8fCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpICsgIjtjaGFyc2V0PXV0Zi04IiB9KTsKICAg +IHZhciB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgdmFyIGEgPSBQLmVsKCJh +IiwgeyBocmVmOiB1cmwsIGRvd25sb2FkOiBmaWxlbmFtZSB9KTsKICAgIGRvY3VtZW50LmJvZHku +YXBwZW5kQ2hpbGQoYSk7IGEuY2xpY2soKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBV +UkwucmV2b2tlT2JqZWN0VVJMKHVybCk7IGEucmVtb3ZlKCk7IH0sIDEyMCk7CiAgfTsKCiAgLyog +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0gUGZsZWdlLUhlbGZlciAoUG93ZXJTaGVsbCwgbG9jYWxob3N0KSAqLwogIC8vIFAubGl2ZSB3 +aXJkIGluIG1haW4uanMgZ2VzZXR6dCAodHJ1ZSBudXIsIHdlbm4gZGFzIFBvcnRhbCB1ZWJlciBk +ZW4KICAvLyBQb3dlclNoZWxsLUhlbGZlciBnZW9lZmZuZXQgd3VyZGUgLT4gU2NocmVpYnJlY2h0 +ZSkuIExlc2VyIG9lZmZuZW4gZGFzCiAgLy8gUG9ydGFsIGRpcmVrdCBwZXIgZmlsZTovLyAtPiBQ +LmxpdmUgYmxlaWJ0IGZhbHNlLCBhbGxlcyBudXIgbGVzYmFyLgogIFAubGl2ZSA9IGZhbHNlOwog +IFAucm9sZSA9ICJyZWFkZXIiOyAgICAgLy8gcmVhZGVyIHwgcmVkYWt0ZXVyIHwgYWRtaW4gICh2 +b20gSGVsZmVyIHZpYSAvYXBpL3BpbmcpCiAgUC51c2VyID0gbnVsbDsgICAgICAgICAvLyBBbm1l +bGRlbmFtZSAoJVVTRVJOQU1FJSkKICBQLnVzZXJOYW1lID0gbnVsbDsgICAgIC8vIEFuemVpZ2Vu +YW1lIGF1cyBkZW4gUm9sbGVuLUxpc3RlbgogIFAuaXNBZG1pbiA9IGZ1bmN0aW9uICgpIHsgcmV0 +dXJuIFAucm9sZSA9PT0gImFkbWluIjsgfTsKICBQLmNhbkVkaXQgPSBmdW5jdGlvbiAoKSB7IHJl +dHVybiBQLnJvbGUgPT09ICJyZWRha3RldXIiIHx8IFAucm9sZSA9PT0gImFkbWluIjsgfTsKICBQ +LnB1YlN0YXRlID0gImlkbGUiOyAgIC8vIGlkbGUgfCBzYXZpbmcgfCBvayB8IGVycm9yCiAgUC5z +ZXRQdWJTdGF0ZSA9IGZ1bmN0aW9uIChzKSB7IFAucHViU3RhdGUgPSBzOyBpZiAoUC51cGRhdGVC +YW5uZXIpIFAudXBkYXRlQmFubmVyKCk7IH07CiAgLy8gU2VydmVyc2VpdGlnZXIgVmVyc2lvbnNz +dGFuZCBqZSBEYXRlbmRhdGVpIChiZWltIEVkaXRvci1TdGFydCB2aWEgL2FwaS9zdGF0ZQogIC8v +IGdlbGFkZW4pLiBXaXJkIGJlaW0gVmVyb2VmZmVudGxpY2hlbiBhbHMgYmFzZVJldiBtaXRnZXNj +aGlja3QgLT4gS29uZmxpa3QtRXJrZW5udW5nLgogIFAuc2VydmVyUmV2ID0ge307CgogIC8vIFNj +aHJlaWJ0IERhdGVpZW4gc2VydmVyc2VpdGlnIGF1ZiBkaWUgRnJlaWdhYmUuIGZpbGVzID0gW3tu +YW1lLCB0ZXh0fV0uCiAgLy8gYmFzZVJldk92ZXJyaWRlOiBudXIgZnVlciBiZXd1c3N0ZXMgVWVi +ZXJzY2hyZWliZW4gbmFjaCBLb25mbGlrdC4KICBQLnNlcnZlcldyaXRlID0gZnVuY3Rpb24gKGZp +bGVzLCBjYiwgYmFzZVJldk92ZXJyaWRlKSB7CiAgICBmZXRjaCgiL2FwaS9wdWJsaXNoIiwgewog +ICAgICBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0 +aW9uL2pzb24iIH0sCiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgZmlsZXM6IGZpbGVzLCBi +YXNlUmV2OiBiYXNlUmV2T3ZlcnJpZGUgfHwgUC5zZXJ2ZXJSZXYgfSkKICAgIH0pLnRoZW4oZnVu +Y3Rpb24gKHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KQogICAgICAudGhlbihmdW5jdGlvbiAoaikg +eyBjYihudWxsLCBqKTsgfSkKICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlKSB7IGNiKGUpOyB9KTsK +ICB9OwoKICAvLyBBdXRvLVZlcm9lZmZlbnRsaWNodW5nOiBnZWJ1ZW5kZWx0L2VudHByZWxsdCBu +YWNoIGplZGVyIEFlbmRlcnVuZy4KICB2YXIgcHViVGltZXIsIHB1YkluRmxpZ2h0ID0gZmFsc2Us +IHB1Yk5lZWQgPSB7IGNvbnRlbnQ6IGZhbHNlLCBuYXY6IGZhbHNlIH0sIHB1YkFydGljbGVzID0g +eyBkaXJ0eTogZmFsc2UgfTsKICBQLnNjaGVkdWxlU2VydmVyUHVibGlzaCA9IGZ1bmN0aW9uICh3 +aGljaCkgewogICAgcHViTmVlZFt3aGljaF0gPSB0cnVlOwogICAgY2xlYXJUaW1lb3V0KHB1YlRp +bWVyKTsKICAgIHB1YlRpbWVyID0gc2V0VGltZW91dChQLmZsdXNoU2VydmVyUHVibGlzaCwgNzAw +KTsKICB9OwoKICAvLyAtLS0gQXVzZ2VsYWdlcnRlIEFydGlrZWwtQm9kaWVzIChnZWdlbiBkYXMg +QXVmYmxhZWhlbiB2b24gZGF0YS1uYXYuanMpIC0tLQogIC8vIEFMTEUgQXJ0aWtlbC1Cb2R5cyBp +biBFSU5FUiBEYXRlaSBkb2t1bWVudGUvanNvbi9hcnRpa2VsLmpzOiB3aW5kb3cuUE9SVEFMX0FS +VD17IjxpZD4iOiI8aHRtbD4iLOKApn0uCiAgLy8gV2lyZCBiZWltIFN0YXJ0IHBlciA8c2NyaXB0 +PiAoaW5kZXguaHRtbCkgZ2VsYWRlbiAtPiBCb2R5cyBzaW5kIHNvZm9ydCBpbSBDYWNoZS4gQmVp +bQogIC8vIFNwZWljaGVybiB3aXJkIGRpZSBnYW56ZSBEYXRlaSBuZXUgZ2VzY2hyaWViZW4gKGVp +biBQdWJsaXNoLVppZWwpLiBmaWxlOi8vLXRhdWdsaWNoICguanMpLgogIHdpbmRvdy5QT1JUQUxf +QVJUID0gd2luZG93LlBPUlRBTF9BUlQgfHwge307CiAgdmFyIEFSVElDTEVfQlVORExFID0gImRv +a3VtZW50ZS9qc29uL2FydGlrZWwuanMiOwogIGZ1bmN0aW9uIGJ1aWxkQXJ0aWNsZUJ1bmRsZSgp +IHsKICAgIHJldHVybiBQLmpzU2FmZSgid2luZG93LlBPUlRBTF9BUlQ9IiArIEpTT04uc3RyaW5n +aWZ5KHdpbmRvdy5QT1JUQUxfQVJUKSArICI7XG4iKTsKICB9CiAgLy8gQm9keSBzb2ZvcnQgY2Fj +aGVuICsgZGllIEJ1ZW5kZWwtRGF0ZWkgZnVlciBkZW4gbmFlY2hzdGVuIFB1Ymxpc2ggdm9ybWVy +a2VuLgogIFAucGVyc2lzdEFydGljbGVCb2R5ID0gZnVuY3Rpb24gKGlkLCBodG1sKSB7CiAgICB3 +aW5kb3cuUE9SVEFMX0FSVFtpZF0gPSBodG1sIHx8ICIiOwogICAgcHViQXJ0aWNsZXMuZGlydHkg +PSB0cnVlOwogICAgUC5zY2hlZHVsZVNlcnZlclB1Ymxpc2goIm5hdiIpOwogIH07CiAgLy8gQm9k +eSBzdGVodCBuYWNoIGRlbSBTdGFydCBiZXJlaXRzIGltIENhY2hlIChnZWJ1ZW5kZWx0IGdlbGFk +ZW4pIC0+IGRpcmVrdCBsaWVmZXJuLgogIFAubG9hZEFydGljbGVCb2R5ID0gZnVuY3Rpb24gKGlk +LCBjYikgewogICAgd2luZG93LlBPUlRBTF9BUlQgPSB3aW5kb3cuUE9SVEFMX0FSVCB8fCB7fTsK +ICAgIGNiKHdpbmRvdy5QT1JUQUxfQVJUW2lkXSAhPSBudWxsID8gd2luZG93LlBPUlRBTF9BUlRb +aWRdIDogIiIsCiAgICAgICB3aW5kb3cuUE9SVEFMX0FSVFtpZF0gPT0gbnVsbCA/IG5ldyBFcnJv +cigibmljaHQgdm9yaGFuZGVuIikgOiBudWxsKTsKICB9OwogIC8vIEVyZm9sZy9GZWhsZXIgZWlu +ZXMgUHVibGlzaC1WZXJzdWNocyB6ZW50cmFsIGJlaGFuZGVsbiAoYXVjaCBmdWVyIGRhcwogIC8v +IGJld3Vzc3RlIFVlYmVyc2NocmVpYmVuIG5hY2ggS29uZmxpa3Qgd2llZGVydmVyd2VuZGV0KS4K +ICBmdW5jdGlvbiBoYW5kbGVQdWJsaXNoUmVzdWx0KGZpbGVzLCBlcnIsIHJlcywgaXNPdmVyd3Jp +dGUpIHsKICAgIGlmICghZXJyICYmIHJlcyAmJiByZXMuY29uZmxpY3QpIHsKICAgICAgUC5zZXRQ +dWJTdGF0ZSgiZXJyb3IiKTsKICAgICAgaWYgKFAub25QdWJsaXNoQ29uZmxpY3QpIFAub25QdWJs +aXNoQ29uZmxpY3QocmVzLCBmaWxlcyk7CiAgICAgIGVsc2UgUC50b2FzdCgiS29uZmxpa3Q6IGpl +bWFuZCBoYXQgendpc2NoZW56ZWl0bGljaCB2ZXLDtmZmZW50bGljaHQuIEJpdHRlIG5ldSBsYWRl +bi4iLCB0cnVlKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGVyciB8fCAhcmVzIHx8ICFy +ZXMub2spIHsKICAgICAgUC5zZXRQdWJTdGF0ZSgiZXJyb3IiKTsKICAgICAgUC50b2FzdCgiS29u +bnRlIG5pY2h0IGF1ZiBkaWUgRnJlaWdhYmUgc2NocmVpYmVuIOKAlCDDhG5kZXJ1bmcgaXN0IG51 +ciBsb2thbCEiLCB0cnVlKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJlcy5yZXZzKSBQ +LnNlcnZlclJldiA9IHJlcy5yZXZzOwogICAgUC5oYXNEcmFmdCA9IGZhbHNlOyBQLmhhc05hdkRy +YWZ0ID0gZmFsc2U7CiAgICB0cnkgeyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShQLkxTLmNvbnRl +bnQpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShQLkxTLm5hdik7IH0gY2F0Y2ggKGUpIHt9CiAg +ICBQLlNFRUQgPSBQLmNsb25lKHsgYnVsbGV0aW5zOiBQLmNvbnRlbnQuYnVsbGV0aW5zLCBwYW5l +bHM6IFAuY29udGVudC5wYW5lbHMsCiAgICAgIHJvc3RlcjogUC5jb250ZW50LnJvc3RlciwgbGlu +a2NvbHM6IFAuY29udGVudC5saW5rY29scywga2VubndvZXJ0ZXI6IFAuY29udGVudC5rZW5ud29l +cnRlciwgcHJ1ZWZ1bmc6IFAuY29udGVudC5wcnVlZnVuZywgbGFnZTogUC5jb250ZW50LmxhZ2Us +IHNldHRpbmdzOiBQLmNvbnRlbnQuc2V0dGluZ3MgfSk7CiAgICBQLnNldFB1YlN0YXRlKCJvayIp +OwogICAgUC5lbWl0KCJwdWJsaXNoZWQiLCB7IGZpbGVzOiBmaWxlcy5tYXAoZnVuY3Rpb24gKGYp +IHsgcmV0dXJuIGYubmFtZTsgfSksIHVzZXI6IFAudXNlciB9KTsKICB9CgogIFAuZmx1c2hTZXJ2 +ZXJQdWJsaXNoID0gZnVuY3Rpb24gKCkgewogICAgLy8gS2VpbiB1ZWJlcmxhcHBlbmRlcyBQdWJs +aXNoOiBsYWV1ZnQgc2Nob24gZWluZXMsIGt1cnogZXJuZXV0IHZlcnN1Y2hlbiAoQWVuZGVydW5n +ZW4KICAgIC8vIGJsZWliZW4gaW4gcHViTmVlZCBnZW1lcmt0KSDigJQgdmVyaGluZGVydCB2ZXJh +bHRldGUgYmFzZVJldiAvIFNlbGJzdC00MDkgYmVpIGxhbmdzYW1lbSBTaGFyZS4KICAgIGlmIChw +dWJJbkZsaWdodCkgeyBjbGVhclRpbWVvdXQocHViVGltZXIpOyBwdWJUaW1lciA9IHNldFRpbWVv +dXQoUC5mbHVzaFNlcnZlclB1Ymxpc2gsIDMwMCk7IHJldHVybjsgfQogICAgdmFyIGZpbGVzID0g +W107CiAgICBpZiAocHViTmVlZC5jb250ZW50ICYmIFAuYnVpbGRDb250ZW50RmlsZSkgZmlsZXMu +cHVzaCh7IG5hbWU6ICJhc3NldHMvanMvZGF0YS1jb250ZW50LmpzIiwgdGV4dDogUC5idWlsZENv +bnRlbnRGaWxlKCkgfSk7CiAgICBpZiAocHViTmVlZC5uYXYgJiYgUC5idWlsZE5hdkZpbGUpIGZp +bGVzLnB1c2goeyBuYW1lOiAiYXNzZXRzL2pzL2RhdGEtbmF2LmpzIiwgdGV4dDogUC5idWlsZE5h +dkZpbGUoKSB9KTsKICAgIGlmIChwdWJBcnRpY2xlcy5kaXJ0eSkgZmlsZXMucHVzaCh7IG5hbWU6 +IEFSVElDTEVfQlVORExFLCB0ZXh0OiBidWlsZEFydGljbGVCdW5kbGUoKSB9KTsgICAvLyBBcnRp +a2VsLUJ1ZW5kZWwgbWl0LXZlcm9lZmZlbnRsaWNoZW4KICAgIHB1Yk5lZWQgPSB7IGNvbnRlbnQ6 +IGZhbHNlLCBuYXY6IGZhbHNlIH07IHB1YkFydGljbGVzID0geyBkaXJ0eTogZmFsc2UgfTsKICAg +IGlmICghZmlsZXMubGVuZ3RoKSByZXR1cm47CiAgICBQLnNldFB1YlN0YXRlKCJzYXZpbmciKTsK +ICAgIHB1YkluRmxpZ2h0ID0gdHJ1ZTsKICAgIFAuc2VydmVyV3JpdGUoZmlsZXMsIGZ1bmN0aW9u +IChlcnIsIHJlcykgewogICAgICBwdWJJbkZsaWdodCA9IGZhbHNlOwogICAgICBoYW5kbGVQdWJs +aXNoUmVzdWx0KGZpbGVzLCBlcnIsIHJlcywgZmFsc2UpOwogICAgICBpZiAocHViTmVlZC5jb250 +ZW50IHx8IHB1Yk5lZWQubmF2KSB7IGNsZWFyVGltZW91dChwdWJUaW1lcik7IHB1YlRpbWVyID0g +c2V0VGltZW91dChQLmZsdXNoU2VydmVyUHVibGlzaCwgMTUwKTsgfQogICAgfSk7CiAgfTsKCiAg +Ly8gQmV3dXNzdGVzIFVlYmVyc2NocmVpYmVuIG5hY2ggS29uZmxpa3Q6IGJhc2VSZXYgYXVmIGRl +biBha3R1ZWxsZW4KICAvLyBTZXJ2ZXJzdGFuZCBzZXR6ZW4sIGRhbWl0IGRlciBTZXJ2ZXIgYWt6 +ZXB0aWVydC4KICBQLnJlcHVibGlzaE92ZXJ3cml0ZSA9IGZ1bmN0aW9uIChmaWxlcywgY3VycmVu +dEJ5TmFtZSkgewogICAgdmFyIGJhc2UgPSB7fTsgZm9yICh2YXIgayBpbiBQLnNlcnZlclJldikg +YmFzZVtrXSA9IFAuc2VydmVyUmV2W2tdOwogICAgaWYgKGN1cnJlbnRCeU5hbWUpIGZvciAodmFy +IG4gaW4gY3VycmVudEJ5TmFtZSkgYmFzZVtuXSA9IGN1cnJlbnRCeU5hbWVbbl07CiAgICBQLnNl +dFB1YlN0YXRlKCJzYXZpbmciKTsKICAgIFAuc2VydmVyV3JpdGUoZmlsZXMsIGZ1bmN0aW9uIChl +cnIsIHJlcykgeyBoYW5kbGVQdWJsaXNoUmVzdWx0KGZpbGVzLCBlcnIsIHJlcywgdHJ1ZSk7IH0s +IGJhc2UpOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2V0LVVwbG9hZCAoQmlsZGVyIC8gUERGKSAqLwogIFAu +SU1HX0VYVCA9IHsgcG5nOjEsIGpwZzoxLCBqcGVnOjEsIGdpZjoxLCB3ZWJwOjEsIGJtcDoxIH07 +CiAgUC5BU1NFVF9NQVggPSAyNSAqIDEwMjQgKiAxMDI0OyAgIC8vIDI1IE1CCiAgLy8gTGFlZHQg +ZWluZSBEYXRlaSBob2NoLiBMaXZlIC0+IERhdGVpIGF1ZiBkaWUgRnJlaWdhYmUgKGdpYnQgUGZh +ZCB6dXJ1ZWNrKS4KICAvLyBGYWxsYmFjayAoZmlsZTovLykgLT4gYmFzZTY0LURhdGEtVVJJLCBk +YW1pdCBlcyBhdWNoIG9obmUgSGVsZmVyIGdlaHQuCiAgUC51cGxvYWRBc3NldCA9IGZ1bmN0aW9u +IChmaWxlLCBjYiwgbmFtZU92ZXJyaWRlKSB7CiAgICB2YXIgbmFtZSA9IG5hbWVPdmVycmlkZSB8 +fCBmaWxlLm5hbWUgfHwgImRhdGVpIjsKICAgIGlmIChmaWxlLnNpemUgPiBQLkFTU0VUX01BWCkg +eyBjYihuZXcgRXJyb3IoIkRhdGVpIHp1IGdyb3NzIChtYXguIDI1IE1CKS4iKSk7IHJldHVybjsg +fQogICAgaWYgKFAubGl2ZSkgewogICAgICBmZXRjaCgiL2FwaS9hc3NldD9uYW1lPSIgKyBlbmNv +ZGVVUklDb21wb25lbnQobmFtZSksIHsKICAgICAgICBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczog +eyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgfSwgYm9keTogZmls +ZQogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkKICAgICAg +ICAudGhlbihmdW5jdGlvbiAoaikgeyBpZiAoaiAmJiBqLm9rICYmIGoucGF0aCkgY2IobnVsbCwg +eyBwYXRoOiBqLnBhdGggfSk7IGVsc2UgY2IobmV3IEVycm9yKChqICYmIGouZXJyb3IpIHx8ICJV +cGxvYWQgZmVobGdlc2NobGFnZW4uIikpOyB9KQogICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZSkg +eyBjYihlKTsgfSk7CiAgICB9IGVsc2UgewogICAgICB2YXIgciA9IG5ldyBGaWxlUmVhZGVyKCk7 +CiAgICAgIHIub25sb2FkID0gZnVuY3Rpb24gKCkgeyBjYihudWxsLCB7IHBhdGg6IHIucmVzdWx0 +IH0pOyB9OyAgIC8vIERhdGEtVVJJCiAgICAgIHIub25lcnJvciA9IGZ1bmN0aW9uICgpIHsgY2Io +bmV3IEVycm9yKCJEYXRlaSBuaWNodCBsZXNiYXIuIikpOyB9OwogICAgICByLnJlYWRBc0RhdGFV +UkwoZmlsZSk7CiAgICB9CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGlnaHRib3ggKEJpbGQvUERGIGdyb3NzKSAq +LwogIFAub3BlbkxpZ2h0Ym94ID0gZnVuY3Rpb24gKGtpbmQsIHNyYywgY2FwdGlvbikgewogICAg +aWYgKCFzcmMpIHJldHVybjsKICAgIFAuY2xvc2VMaWdodGJveCgpOwogICAgdmFyIGlubmVyOwog +ICAgaWYgKGtpbmQgPT09ICJwZGYiKSBpbm5lciA9IFAuZWwoImlmcmFtZSIsIHsgY2xhc3M6ICJs +Yi1wZGYiLCBzcmM6IHNyYywgdGl0bGU6IGNhcHRpb24gfHwgIlBERiIgfSk7CiAgICBlbHNlIGlu +bmVyID0gUC5lbCgiaW1nIiwgeyBjbGFzczogImxiLWltZyIsIHNyYzogc3JjLCBhbHQ6IGNhcHRp +b24gfHwgIiIgfSk7CiAgICB2YXIgY2FwID0gY2FwdGlvbiA/IFAuZWwoImRpdiIsIHsgY2xhc3M6 +ICJsYi1jYXAiLCB0ZXh0OiBjYXB0aW9uIH0pIDogbnVsbDsKICAgIHZhciBvcGVuRXh0ID0gUC5l +bCgiYSIsIHsgY2xhc3M6ICJsYi1leHQiLCBocmVmOiBzcmMsIHRhcmdldDogIl9ibGFuayIsIHJl +bDogIm5vb3BlbmVyIiwgdGl0bGU6ICJJbiBuZXVlbSBUYWIgb2VmZm5lbiIsIGh0bWw6IFAuaWMo +ImV4dCIpIH0pOwogICAgdmFyIGNsb3NlID0gUC5lbCgiYnV0dG9uIiwgeyBjbGFzczogImxiLXgi +LCB0aXRsZTogIlNjaGxpZXNzZW4gKEVzYykiLCBvbmNsaWNrOiBQLmNsb3NlTGlnaHRib3gsIGh0 +bWw6IFAuaWMoIngiKSB9KTsKICAgIHZhciBib3ggPSBQLmVsKCJkaXYiLCB7IGNsYXNzOiAibGIt +Ym94IiArIChraW5kID09PSAicGRmIiA/ICIgcGRmIiA6ICIiKSB9LCBbaW5uZXIsIGNhcF0pOwog +ICAgdmFyIG92ID0gUC5lbCgiZGl2IiwgeyBjbGFzczogImxpZ2h0Ym94IiwgaWQ6ICJsaWdodGJv +eCIsIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGlmIChlLnRhcmdldCA9PT0gb3YpIFAuY2xvc2VM +aWdodGJveCgpOyB9IH0sIFtib3gsIG9wZW5FeHQsIGNsb3NlXSk7CiAgICBkb2N1bWVudC5ib2R5 +LmFwcGVuZENoaWxkKG92KTsKICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7 +IG92LmNsYXNzTGlzdC5hZGQoInNob3ciKTsgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl +bmVyKCJrZXlkb3duIiwgbGJFc2MpOwogIH07CiAgZnVuY3Rpb24gbGJFc2MoZSkgeyBpZiAoZS5r +ZXkgPT09ICJFc2NhcGUiKSBQLmNsb3NlTGlnaHRib3goKTsgfQogIFAuY2xvc2VMaWdodGJveCA9 +IGZ1bmN0aW9uICgpIHsKICAgIHZhciBvdiA9IFAuJCgiI2xpZ2h0Ym94Iik7IGlmIChvdikgb3Yu +cmVtb3ZlKCk7CiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgbGJF +c2MpOwogIH07CiAgLy8gS2xpY2stRGVsZWdhdGlvbjogRW1iZWRzIGluIEFydGlrZWwtL0ZlZWQt +QW5zaWNodCBvZWZmbmVuIGRpZSBMaWdodGJveC4KICAvLyBJbSBFZGl0b3IgKGNvbnRlbnRlZGl0 +YWJsZSkgTklDSFQg4oCUIGRvcnQgc29sbGVuIHNpZSBlZGl0aWVyYmFyIGJsZWliZW4uCiAgUC5p +bml0RW1iZWRzID0gZnVuY3Rpb24gKCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi +Y2xpY2siLCBmdW5jdGlvbiAoZSkgewogICAgICB2YXIgZmlnID0gZS50YXJnZXQuY2xvc2VzdCAm +JiBlLnRhcmdldC5jbG9zZXN0KCIuZW1iZWQiKTsKICAgICAgaWYgKCFmaWcpIHJldHVybjsKICAg +ICAgaWYgKGZpZy5jbG9zZXN0KCdbY29udGVudGVkaXRhYmxlPSJ0cnVlIl0nKSkgcmV0dXJuOwog +ICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmIChmaWcuY2xhc3NMaXN0LmNvbnRhaW5z +KCJwZGYiKSkgewogICAgICAgIHZhciBubSA9IGZpZy5xdWVyeVNlbGVjdG9yKCIucGRmLW5hbWUi +KTsKICAgICAgICBQLm9wZW5MaWdodGJveCgicGRmIiwgZmlnLmdldEF0dHJpYnV0ZSgiZGF0YS1z +cmMiKSwgbm0gPyBubS50ZXh0Q29udGVudCA6ICIiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2 +YXIgaW0gPSBmaWcucXVlcnlTZWxlY3RvcigiaW1nIik7CiAgICAgICAgaWYgKGltKSBQLm9wZW5M +aWdodGJveCgiaW1nIiwgaW0uZ2V0QXR0cmlidXRlKCJzcmMiKSwgaW0uZ2V0QXR0cmlidXRlKCJh +bHQiKSk7CiAgICAgIH0KICAgIH0pOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvY2FsU3RvcmFnZS1LZXlzICov +CiAgUC5MUyA9IHsgY29udGVudDogInBvcnRhbHUuY29udGVudCIsIG5hdjogInBvcnRhbHUubmF2 +IiwgaGlzdDogInBvcnRhbHUuaGlzdCIsCiAgICAgICAgICAgdGhlbWU6ICJwb3J0YWx1LnRoZW1l +IiwgdmlzaXQ6ICJwb3J0YWx1Lmxhc3RWaXNpdCIsIGxvZ286ICJwb3J0YWx1LmxvZ28iLCBjb2xs +YXBzZTogInBvcnRhbHUuY29sbGFwc2UiIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0YXRlICovCiAgUC5OQVYgPSBu +dWxsOyAgICAgICAgICAgIC8vIE5hdmlnYXRpb25zYmF1bSAoa2FubiBsb2thbGVuIEVudHd1cmYg +ZW50aGFsdGVuKQogIFAuU0VFRCA9IG51bGw7ICAgICAgICAgIC8vIHZlcsO2ZmZlbnRsaWNodGVy +IEluaGFsdHMtU2VlZAogIFAuY29udGVudCA9IG51bGw7ICAgICAgIC8vIGFrdGl2ZXIgSW5oYWx0 +IChjYXRzL2J1bGxldGlucy9wYW5lbHMvcm9zdGVyKQogIFAuaGFzRHJhZnQgPSBmYWxzZTsgICAg +IC8vIEluaGFsdHMtRW50d3VyZiB2b3JoYW5kZW4/CiAgUC5oYXNOYXZEcmFmdCA9IGZhbHNlOyAg +Ly8gTmF2aWdhdGlvbnMtRW50d3VyZiB2b3JoYW5kZW4/CiAgUC5sYXN0VmlzaXQgPSAwOwogIFAu +Y3VycmVudEhyZWYgPSBudWxsOwogIC8vIFZlcnNpb25zLVN0ZW1wZWwgZGVyIHZlcm9lZmZlbnRs +aWNodGVuIERhdGVuZmlsZXMgKEJhc2lzIGZ1ZXIgc3BhZXRlcmUKICAvLyBvcHRpbWlzdGlzY2hl +IEtvbmZsaWt0ZXJrZW5udW5nIGJlaW0gZ2VtZWluc2FtZW4gU2NocmVpYmVuIGF1ZiBkaWUgRnJl +aWdhYmUpLgogIFAuY29udGVudFJldiA9IHsgbjogMCwgdHM6IG51bGwsIHVzZXI6IG51bGwgfTsK +ICBQLm5hdlJldiA9IHsgbjogMCwgdHM6IG51bGwsIHVzZXI6IG51bGwgfTsKICBQLm5leHRSZXYg +PSBmdW5jdGlvbiAoY3VyKSB7IHJldHVybiB7IG46ICgoY3VyICYmIGN1ci5uKSB8fCAwKSArIDEs +IHRzOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIHVzZXI6IFAudXNlciB8fCBudWxsIH07IH07 +CgogIC8vIFBvcnRhbHdlaXRlIEVpbnN0ZWxsdW5nZW4gKFBoYXNlIDcpIOKAlCB2ZXJvZWZmZW50 +bGljaHQgYWxzIHdpbmRvdy5QT1JUQUxfU0VUVElOR1MuCiAgLy8gRmFsbGJhY2ssIGZhbGxzIGRp +ZSBEYXRlaSAobm9jaCkga2VpbmUgU2V0dGluZ3MgZW50aGFlbHQgLT4gYnJpY2h0IExlc2VyIG5p +Y2h0LgogIFAuZGVmYXVsdFNldHRpbmdzID0gZnVuY3Rpb24gKCkgewogICAgcmV0dXJuIHsKICAg +ICAgZGVmYXVsdFRoZW1lOiAibGlnaHQiLAogICAgICBicmFuZGluZzogeyBwb3J0YWxUaXRsZTog +IlBvcnRhbCBVbmlvbiDCtyBMZWl0c3RlbGxlLUluZm9ybWF0aW9uc3BvcnRhbCIsCiAgICAgICAg +ICAgICAgICAgIGJyYW5kTmFtZTogIlBvcnRhbCBVbmlvbiIsIGJyYW5kU3VidGl0bGU6ICJMZWl0 +c3RlbGxlIERvcnRtdW5kIiwKICAgICAgICAgICAgICAgICAgcHJpbnRGb290ZXI6ICJQb3J0YWwg +VW5pb24gwrcgTGVpdHN0ZWxsZSBEb3J0bXVuZCIsCiAgICAgICAgICAgICAgICAgIGJyYW5kQ29s +b3I6ICIiLCBicmFuZENvbG9yMjogIiIsIGxvZ29Vcmw6ICIiIH0sICAgLy8gbGVlciA9IENTUy1W +b3JnYWJlIChzb3V2ZXJhZW5lcyBCbGF1KQogICAgICBsYWdlUHJlc2V0czogWyB7IHRleHQ6ICJS +ZWdlbGJldHJpZWIiLCBsZXZlbDogIm9rIiB9LAogICAgICAgICAgICAgICAgICAgICB7IHRleHQ6 +ICJFcmjDtmh0ZSBXYWNoc2Fta2VpdCIsIGxldmVsOiAiYWxlcnQiIH0sCiAgICAgICAgICAgICAg +ICAgICAgIHsgdGV4dDogIkdyb8OfZWluc2F0eiIsIGxldmVsOiAiYWxlcnQiIH0gXSwKICAgICAg +Ly8gSW1wcmVzc3VtIChIVE1MLCBsZWVyID0gUC5JTVBSRVNTVU1fREVGQVVMVCkgKyBTdXBwb3J0 +LU1haWwgKEVtcGZhZW5nZXIvQmV0cmVmZi9Wb3JsYWdlLAogICAgICAvLyBsZWVyID0gUC5TVVBQ +T1JUX01BSUxfREVGQVVMVCkg4oCUIGFsbGVzIGltIEFkbWluIHVudGVyICJJbXByZXNzdW0gJiBT +dXBwb3J0IiBlZGl0aWVyYmFyLgogICAgICBpbXByZXNzdW06ICIiLAogICAgICAvLyBzdXBwb3J0 +ID0gendlaSBaaWVsZTogVGVhbSA1IChhbGxnZW1laW4sIGFsbGUgUm9sbGVuKSArIFJvZXNnZW4g +KEVza2FsYXRpb24sIG51ciBSZWRha3RldXIvQWRtaW4pLgogICAgICBzdXBwb3J0OiB7IHRlYW01 +RW1haWw6ICJEaXJHRUZMRFRlYW01LkRvcnRtdW5kQHBvbGl6ZWkubnJ3LmRlIiwgdGVhbTVTdWJq +ZWN0OiAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IChUZWFtIDUpIiwgdGVhbTVNYWlsOiAiIiwK +ICAgICAgICAgICAgICAgICBlbWFpbDogInBoaWxpcHAucm9lc2dlbkBwb2xpemVpLm5ydy5kZSIs +IHN1YmplY3Q6ICJQb3J0YWwgVW5pb24g4oCTIFN1cHBvcnQiLCBtYWlsOiAiIiB9LAogICAgICAv +LyBEYXJzdGVsbHVuZ3MtT3ZlcnJpZGVzLiBGbGFjaGUgS2V5cyAoYXpGb250U2l6ZSDigKYsIGRl +bnNpdHkpID0gUC5VSV9WQVJTL0RpY2h0ZS4KICAgICAgLy8gRXJ3ZWl0ZXJ0IChQaGFzZSAxMyDi +gJQg4oCeYWxsZXMgZWluc3RlbGxiYXIiKTogY29sb3JzIChwcm8gVGhlbWUpLCB0b2tlbnMgKHRo +ZW1lLWFnbm9zdGlzY2gpLAogICAgICAvLyB0ZXh0cyAoVUktQmVzY2hyaWZ0dW5nZW4gdmlhIFAu +dCksIG1vZHVsZXMgKExpbWl0cy9TaWNodGJhcmtlaXQgdmlhIFAubW9kKS4gTGVlciA9IENTUy9E +ZWZhdWx0LgogICAgICB1aTogeyBjb2xvcnM6IHsgbGlnaHQ6IHt9LCBkYXJrOiB7fSB9LCB0b2tl +bnM6IHt9LCB0ZXh0czoge30sIG1vZHVsZXM6IHt9IH0KICAgIH07CiAgfTsKICAvLyBTZXR0aW5n +cyBkZWZlbnNpdiB2ZXJ2b2xsc3RhZW5kaWdlbiAoYmFjay1jb21wYXQ6IGFlbHRlcmUgUE9SVEFM +X1NFVFRJTkdTIG9obmUgZGllIG5ldWVuIEZlbGRlcikuCiAgUC5ub3JtYWxpemVTZXR0aW5ncyA9 +IGZ1bmN0aW9uIChTKSB7CiAgICBTID0gUyB8fCB7fTsKICAgIGlmICghUy51aSB8fCB0eXBlb2Yg +Uy51aSAhPT0gIm9iamVjdCIpIFMudWkgPSB7fTsKICAgIGlmICghUy51aS5jb2xvcnMgfHwgdHlw +ZW9mIFMudWkuY29sb3JzICE9PSAib2JqZWN0IikgUy51aS5jb2xvcnMgPSB7fTsKICAgIGlmICgh +Uy51aS5jb2xvcnMubGlnaHQpIFMudWkuY29sb3JzLmxpZ2h0ID0ge307CiAgICBpZiAoIVMudWku +Y29sb3JzLmRhcmspIFMudWkuY29sb3JzLmRhcmsgPSB7fTsKICAgIGlmICghUy51aS50b2tlbnMp +IFMudWkudG9rZW5zID0ge307CiAgICBpZiAoIVMudWkudGV4dHMpIFMudWkudGV4dHMgPSB7fTsK +ICAgIGlmICghUy51aS5tb2R1bGVzKSBTLnVpLm1vZHVsZXMgPSB7fTsKICAgIGlmICh0eXBlb2Yg +Uy5pbXByZXNzdW0gIT09ICJzdHJpbmciKSBTLmltcHJlc3N1bSA9ICIiOwogICAgaWYgKCFTLnN1 +cHBvcnQgfHwgdHlwZW9mIFMuc3VwcG9ydCAhPT0gIm9iamVjdCIpIFMuc3VwcG9ydCA9IHt9Owog +ICAgcmV0dXJuIFM7CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGFyc3RlbGx1bmdzLU9wdGlvbmVuIChkYXRlbmdl +dHJpZWJlbikKICAgICBFSU5FIGRla2xhcmF0aXZlIExpc3RlIHRyZWlidCBzb3dvaGwgZGFzIEFu +d2VuZGVuIChhbHMgQ1NTLUN1c3RvbS1Qcm9wZXJ0eSBhdWYgOnJvb3QpCiAgICAgYWxzIGF1Y2gg +ZGFzIEVpbnN0ZWxsdW5ncy1Gb3JtdWxhci4gTmV1ZSBTdGVsbHNjaHJhdWJlID0gZWluZSBaZWls +ZSBoaWVyIGVyZ2Flbnplbi4KICAgICBMZWVyZXIgV2VydCAtPiBDU1MtVm9yZ2FiZSBibGVpYnQg +KElubGluZS1Qcm9wIGVudGZlcm50KS4gQmV3dXNzdCBrZWluZSBMYXlvdXQtQnJ1ZWNoZToKICAg +ICBnZXNldHp0ZSBXZXJ0ZSB1ZWJlcnNjaHJlaWJlbiBhdWNoIGRpZSByZXNwb25zaXZlbiBEZWZh +dWx0cyDigJQgbnVyIHNldHplbiwgd2FzIGdld29sbHQgaXN0LiAqLwogIFAuVUlfVkFSUyA9IFsK +ICAgIHsga2V5OiAiYXpGb250U2l6ZSIsICAgbGFiZWw6ICJB4oCTWi1TY2hyaWZ0Z3LDtsOfZSIs +ICAgICAgY3NzVmFyOiAiLS1hei1mcyIsICAgdW5pdDogInB4IiwgZGVmOiAiMTEuNSIsIGhpbnQ6 +ICJHcsO2w59lIGRlciBCdWNoc3RhYmVuIGluIGRlciBSZWdpc3RlcmxlaXN0ZS4iIH0sCiAgICB7 +IGtleTogImJhc2VGb250U2l6ZSIsIGxhYmVsOiAiQmFzaXMtU2NocmlmdGdyw7bDn2UiLCAgICAg +Y3NzVmFyOiAiLS1mcy1iYXNlIiwgdW5pdDogInB4IiwgZGVmOiAiMTUiLCAgIGhpbnQ6ICJHcnVu +ZHRleHRncsO2w59lIGRlciBnZXNhbXRlbiBPYmVyZmzDpGNoZS4iIH0sCiAgICB7IGtleTogImNv +cm5lclJhZGl1cyIsIGxhYmVsOiAiRWNrLVJ1bmR1bmciLCAgICAgICAgICAgIGNzc1ZhcjogIi0t +cmFkaXVzIiwgIHVuaXQ6ICJweCIsIGRlZjogIjgiLCAgICBoaW50OiAiTWFzdGVyLVJ1bmR1bmcg +4oCUIGbDpHJidCBhbGxlIEVja2VuIChLYXJ0ZW4sIEtuw7ZwZmUsIEZlbGRlciwgRGlhbG9nZSku +IiB9LAogICAgeyBrZXk6ICJyZWFkV2lkdGgiLCAgICBsYWJlbDogIkxlc2VicmVpdGUgQXJ0aWtl +bCIsICAgICBjc3NWYXI6ICItLXJlYWQiLCAgICB1bml0OiAiY2giLCBkZWY6ICI3NCIsICAgaGlu +dDogIk1heGltYWxlIFRleHRicmVpdGUgbGFuZ2VyIEFydGlrZWwgKGluIFplaWNoZW4pLiIgfSwK +ICAgIHsga2V5OiAicmFpbEwiLCAgICAgICAgbGFiZWw6ICJMaW5rZSBTcGFsdGUg4oCTIEJyZWl0 +ZSIsICBjc3NWYXI6ICItLXJhaWwtbCIsICB1bml0OiAicHgiLCBkZWY6ICIyNjgiLCAgaGludDog +IkJyZWl0ZSBkZXIgTmF2aWdhdGlvbnNzcGFsdGUgKMO8YmVyc2NocmVpYnQgZGllIHJlc3BvbnNp +dmUgQW5wYXNzdW5nKS4iIH0sCiAgICB7IGtleTogInJhaWxSIiwgICAgICAgIGxhYmVsOiAiUmVj +aHRlIFNwYWx0ZSDigJMgQnJlaXRlIiwgY3NzVmFyOiAiLS1yYWlsLXIiLCAgdW5pdDogInB4Iiwg +ZGVmOiAiNTYwIiwgIGhpbnQ6ICJCcmVpdGUgZGVyIFNjaG5lbGx6dWdyaWZmZS1TcGFsdGUgKMO8 +YmVyc2NocmVpYnQgZGllIHJlc3BvbnNpdmUgQW5wYXNzdW5nKS4iIH0sCiAgICB7IGtleTogImJh +ckgiLCAgICAgICAgIGxhYmVsOiAiS29wZnplaWxlbi1Iw7ZoZSIsICAgICAgICBjc3NWYXI6ICIt +LWJhci1oIiwgICB1bml0OiAicHgiLCBkZWY6ICI2MiIsICAgaGludDogIkjDtmhlIGRlciBvYmVy +ZW4gTGVpc3RlIChUb3BiYXIpLiIgfQogIF07CiAgLy8gRGFyc3RlbGx1bmdzLU92ZXJyaWRlcyBh +dXMgZGVuIFNldHRpbmdzIGFscyBJbmxpbmUtQ1NTLVZhcmlhYmxlbiBhdWYgOnJvb3QgYW53ZW5k +ZW4uCiAgUC5hcHBseVVpVmFycyA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciB1aSA9IChQLmNvbnRl +bnQgJiYgUC5jb250ZW50LnNldHRpbmdzICYmIFAuY29udGVudC5zZXR0aW5ncy51aSkgfHwge307 +CiAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZTsKICAgIFAuVUlf +VkFSUy5mb3JFYWNoKGZ1bmN0aW9uIChmKSB7CiAgICAgIHZhciB2ID0gdWlbZi5rZXldOwogICAg +ICBpZiAodiAhPSBudWxsICYmIFN0cmluZyh2KS50cmltKCkgIT09ICIiKSByb290LnNldFByb3Bl +cnR5KGYuY3NzVmFyLCBTdHJpbmcodikudHJpbSgpICsgKGYudW5pdCB8fCAiIikpOwogICAgICBl +bHNlIHJvb3QucmVtb3ZlUHJvcGVydHkoZi5jc3NWYXIpOwogICAgfSk7CiAgfTsKICAvLyBEaWNo +dGUtUHJlc2V0IChQaGFzZSAxMik6IGtvbXBha3QgfCBrb21mb3J0YWJlbCDigJQgYWxzIGRhdGEt +ZGVuc2l0eSBhdWYgOnJvb3Q7IENTUyByZWdlbHQgZGVuIFJlc3QuCiAgLy8gTGVlci91bmJla2Fu +bnQgLT4gQXR0cmlidXQgZW50ZmVybnQgLT4gQ1NTLVZvcmdhYmUgKGF1c2dld29nZW4pIGdpbHQu +CiAgUC5hcHBseURlbnNpdHkgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgdWkgPSAoUC5jb250ZW50 +ICYmIFAuY29udGVudC5zZXR0aW5ncyAmJiBQLmNvbnRlbnQuc2V0dGluZ3MudWkpIHx8IHt9Owog +ICAgdmFyIGQgPSB1aS5kZW5zaXR5OwogICAgdmFyIHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVs +ZW1lbnQ7CiAgICBpZiAoZCA9PT0gImNvbXBhY3QiIHx8IGQgPT09ICJjb21mb3J0YWJsZSIpIHJv +b3Quc2V0QXR0cmlidXRlKCJkYXRhLWRlbnNpdHkiLCBkKTsKICAgIGVsc2Ugcm9vdC5yZW1vdmVB +dHRyaWJ1dGUoImRhdGEtZGVuc2l0eSIpOwogIH07CiAgLy8gTWVsZHVuZ3MtSGVydm9yaGVidW5n +OiBQdWxzIGRlciAiV2ljaHRpZyItU3R1ZmUgYW4vYXVzIChkYXRlbmdldHJpZWJlbiB2aWEgTU9E +VUxFX1ZBUlMuaGlnaGxpZ2h0UHVsc2UpLgogIFAuYXBwbHlIaWdobGlnaHQgPSBmdW5jdGlvbiAo +KSB7CiAgICB2YXIgb24gPSBQLm1vZCA/IFAubW9kKCJoaWdobGlnaHRQdWxzZSIpIDogdHJ1ZTsK +ICAgIHZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwogICAgaWYgKG9uKSByb290 +LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1ub3B1bHNlIik7IGVsc2Ugcm9vdC5zZXRBdHRyaWJ1dGUo +ImRhdGEtbm9wdWxzZSIsICIxIik7CiAgfTsKCiAgLyogLS0tLS0tLS0tLSBEZXNpZ24tVG9rZW5z +IChkYXRlbmdldHJpZWJlbiwg4oCeYWxsZXMgZWluc3RlbGxiYXIiIFBoYXNlIDEzKSAtLS0tLS0t +LS0tCiAgICAgRUlORSBEZWZpbml0aW9uIHRyZWlidCBBbndlbmRlbiAoZ2VuZXJpZXJ0ZXMgPHN0 +eWxlIGlkPSJwdS1vdmVycmlkZXMiPikgVU5EIEZvcm11bGFyLgogICAgIERlZmF1bHRzIHNwaWVn +ZWxuIGV4YWt0IGRpZSBDU1MtOnJvb3QtV2VydGUgKGFzc2V0cy9jc3MvcG9ydGFsLmNzcykuIEZh +cmJlbiBwcm8gVGhlbWUKICAgICAoSGVsbC9EdW5rZWwpIC0+IHNldHRpbmdzLnVpLmNvbG9yc1t0 +aGVtZV1ba2V5XTsgdGhlbWUtYWdub3N0aXNjaCAoVHlwby9BYnN0YW5kL0Jld2VndW5nKQogICAg +IC0+IHNldHRpbmdzLnVpLnRva2Vuc1trZXldLiBOSUNIVCBlbnRoYWx0ZW46IC0tZnMtYmFzZSwg +LS1yYWRpdXMsIC0tcmVhZCwgLS1yYWlsLWwsCiAgICAgLS1yYWlsLXIsIC0tYmFyLWgsIC0tYXot +ZnMgKGRpZSBsaWVnZW4gaW4gUC5VSV9WQVJTLCBTZWt0aW9uIExheW91dCkuIGNzc1ZhciA9ICIt +LSIgKyBrZXkuICovCiAgUC5ERVNJR05fVE9LRU5TID0gW107CiAgKGZ1bmN0aW9uICgpIHsKICAg +IC8vIFtrZXksIGxhYmVsLCBoZWxsLCBkdW5rZWxdCiAgICB2YXIgQ09MUyA9IFsKICAgICAgWyJi +ZyIsIkhpbnRlcmdydW5kIiwiI2VjZWZmNCIsIiMwZjE1MWQiXSwKICAgICAgWyJiZy0yIiwiRmzD +pGNoZSAoS2FydGVuL01vZGFsKSIsIiNmZmZmZmYiLCIjMTgyMjMwIl0sCiAgICAgIFsiYmctMyIs +IkZsw6RjaGUgMiAoRmVsZGVyL0hvdmVyKSIsIiNmM2Y2ZmEiLCIjMWYyYjNhIl0sCiAgICAgIFsi +YmctaG92IiwiSG92ZXItRmzDpGNoZSIsIiNlOGVkZjQiLCIjMjgzNTQ1Il0sCiAgICAgIFsibGlu +ZSIsIkxpbmllIiwiI2RiZTFlYSIsIiMyYzNhNGMiXSwKICAgICAgWyJsaW5lLTIiLCJMaW5pZSBr +csOkZnRpZyIsIiNjNGNkZGEiLCIjM2I0YjYwIl0sCiAgICAgIFsidGV4dCIsIlRleHQiLCIjMTUy +MDJlIiwiI2VlZjJmOCJdLAogICAgICBbInRleHQtZGltIiwiVGV4dCBnZWRpbW10IiwiIzQ1NTc2 +YyIsIiNhYWI4YzkiXSwKICAgICAgWyJ0ZXh0LWZudCIsIlRleHQgc2Nod2FjaCIsIiM3MjgzOWEi +LCIjN2E4YTlkIl0sCiAgICAgIFsiYnJhbmQiLCJNYXJrZW5mYXJiZSIsIiMxNDUyOWIiLCIjNmFh +OWVmIl0sCiAgICAgIFsiYnJhbmQtMiIsIk1hcmtlbi1Ba3plbnQiLCIjMTQ1MjliIiwiIzZhYTll +ZiJdLAogICAgICBbImJyYW5kLXN0cm9uZyIsIk1hcmtlIGtyw6RmdGlnIiwiIzBlNDE3YiIsIiM4 +NmJiZjQiXSwKICAgICAgWyJicmFuZC1zb2Z0IiwiTWFya2UgemFydCIsIiNlN2YwZmIiLCJyZ2Jh +KDEwNiwxNjksMjM5LC4xNikiXSwKICAgICAgWyJhY2NlbnQtaW5rIiwiVGV4dCBhdWYgTWFya2Ui +LCIjZmZmZmZmIiwiIzBhMTQyMCJdLAogICAgICBbImNyZXN0IiwiTG9nby1GZWxkIiwiIzEwM2E2 +YiIsIiMwYzJhNGYiXSwKICAgICAgWyJmb2N1cyIsIkZva3VzLVJpbmciLCIjMWY2ZmQ2IiwiIzZh +YTllZiJdLAogICAgICBbImRhbmdlciIsIkdlZmFociIsIiNjMDI4M2EiLCIjZTA1NjZhIl0sCiAg +ICAgIFsiZGFuZ2VyLWQiLCJHZWZhaHIgZHVua2VsIiwiI2EwMWUyZSIsIiNjNDNlNTIiXSwKICAg +ICAgWyJkYW5nZXItc29mdCIsIkdlZmFociB6YXJ0IiwiI2ZkZWNlZSIsInJnYmEoMjI0LDg2LDEw +NiwuMTYpIl0sCiAgICAgIFsid2FybiIsIldhcm51bmciLCIjOWE2NjA4IiwiI2UwYTgzOCJdLAog +ICAgICBbIndhcm4tc29mdCIsIldhcm51bmcgemFydCIsIiNmYmYyZGQiLCJyZ2JhKDIyNCwxNjgs +NTYsLjE2KSJdLAogICAgICBbIm9rIiwiT0sgLyBHcsO8biIsIiMxYzdhNGQiLCIjNDZiZTg2Il0s +CiAgICAgIFsiaGwtaW5mbyIsIk1lbGR1bmctSGVydm9yaC4gSGVsbGJsYXUiLCIjMmY2ZmIwIiwi +IzVhYTBlMCJdLAogICAgICBbImhsLWFsZXJ0IiwiTWVsZHVuZy1IZXJ2b3JoLiBIZWxscm90Iiwi +I2MwMzkyYiIsIiNlMDU2NmEiXSwKICAgICAgWyJobC11cmdlbnQiLCJNZWxkdW5nLUhlcnZvcmgu +IFdpY2h0aWcgKEdvbGRyb3QsIHB1bHNpZXJ0KSIsIiNjNDZhMTAiLCIjZjBhMjNhIl0KICAgIF07 +CiAgICBDT0xTLmZvckVhY2goZnVuY3Rpb24gKGMpIHsKICAgICAgUC5ERVNJR05fVE9LRU5TLnB1 +c2goeyBrZXk6IGNbMF0sIGxhYmVsOiBjWzFdLCBjc3NWYXI6ICItLSIgKyBjWzBdLCBncm91cDog +ImZhcmJlLWhlbGwiLCAgIHRoZW1lOiAibGlnaHQiLCB0eXBlOiAiY29sb3IiLCB1bml0OiAiIiwg +ZGVmOiBjWzJdIH0pOwogICAgICBQLkRFU0lHTl9UT0tFTlMucHVzaCh7IGtleTogY1swXSwgbGFi +ZWw6IGNbMV0sIGNzc1ZhcjogIi0tIiArIGNbMF0sIGdyb3VwOiAiZmFyYmUtZHVua2VsIiwgdGhl +bWU6ICJkYXJrIiwgIHR5cGU6ICJjb2xvciIsIHVuaXQ6ICIiLCBkZWY6IGNbM10gfSk7CiAgICB9 +KTsKICAgIC8vIFtrZXksIGxhYmVsLCBncm91cCwgdW5pdCwgZGVmXQogICAgdmFyIFJFU1QgPSBb +CiAgICAgIFsiZnMtMnhzIiwiTWluaS1UZXh0IiwidHlwbyIsInB4IiwiMTEiXSwgWyJmcy14cyIs +IktsZWluLVRleHQiLCJ0eXBvIiwicHgiLCIxMiJdLAogICAgICBbImZzLXNtIiwiVGV4dCBrbGVp +biIsInR5cG8iLCJweCIsIjEzIl0sIFsiZnMtbWQiLCJUZXh0IG1pdHRlbCIsInR5cG8iLCJweCIs +IjE3Il0sCiAgICAgIFsiZnMtbGciLCLDnGJlcnNjaHJpZnQgUyIsInR5cG8iLCJweCIsIjIwIl0s +IFsiZnMteGwiLCLDnGJlcnNjaHJpZnQgTSIsInR5cG8iLCJweCIsIjI0Il0sCiAgICAgIFsiZnMt +MnhsIiwiw5xiZXJzY2hyaWZ0IEwiLCJ0eXBvIiwicHgiLCIzMCJdLAogICAgICBbImxoLXRpZ2h0 +IiwiWmVpbGVuaMO2aGUgZW5nIiwidHlwbyIsIiIsIjEuMjUiXSwgWyJsaC1iYXNlIiwiWmVpbGVu +aMO2aGUgbm9ybWFsIiwidHlwbyIsIiIsIjEuNDciXSwKICAgICAgWyJsaC1yZWFkIiwiWmVpbGVu +aMO2aGUgTGVzZW4iLCJ0eXBvIiwiIiwiMS42NSJdLAogICAgICBbInNwLTIiLCJBYnN0YW5kIFhT +IiwiYWJzdGFuZCIsInB4IiwiOCJdLCBbInNwLTMiLCJBYnN0YW5kIFMiLCJhYnN0YW5kIiwicHgi +LCIxMiJdLAogICAgICBbInNwLTQiLCJBYnN0YW5kIE0iLCJhYnN0YW5kIiwicHgiLCIxNiJdLCBb +InNwLTUiLCJBYnN0YW5kIEwiLCJhYnN0YW5kIiwicHgiLCIyMCJdLAogICAgICBbInNwLTYiLCJB +YnN0YW5kIFhMIiwiYWJzdGFuZCIsInB4IiwiMjQiXSwKICAgICAgWyJkdXItMSIsIkRhdWVyIGt1 +cnoiLCJiZXdlZ3VuZyIsIm1zIiwiMTIwIl0sIFsiZHVyLTIiLCJEYXVlciBub3JtYWwiLCJiZXdl +Z3VuZyIsIm1zIiwiMjAwIl0sCiAgICAgIFsiZHVyLTMiLCJEYXVlciBsYW5nIiwiYmV3ZWd1bmci +LCJtcyIsIjMyMCJdCiAgICBdOwogICAgUkVTVC5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7CiAgICAg +IFAuREVTSUdOX1RPS0VOUy5wdXNoKHsga2V5OiByWzBdLCBsYWJlbDogclsxXSwgY3NzVmFyOiAi +LS0iICsgclswXSwgZ3JvdXA6IHJbMl0sIHR5cGU6ICJsZW4iLCB1bml0OiByWzNdLCBkZWY6IHJb +NF0gfSk7CiAgICB9KTsKICB9KSgpOwoKICAvLyBHZW5lcmllcnQgZGllIE92ZXJyaWRlLVJlZ2Vs +biAobnVyIGdlc2V0enRlIFdlcnRlKS4gT3B0aW9uYWxlcyB1aS1BcmcgZnVlciBMaXZlLVZvcnNj +aGF1LgogIFAuYnVpbGRPdmVycmlkZUNzcyA9IGZ1bmN0aW9uICh1aSkgewogICAgdWkgPSB1aSB8 +fCAoUC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5ncyAmJiBQLmNvbnRlbnQuc2V0dGluZ3Mu +dWkpIHx8IHt9OwogICAgdmFyIGNvbG9ycyA9IHVpLmNvbG9ycyB8fCB7fSwgdG9rZW5zID0gdWku +dG9rZW5zIHx8IHt9OwogICAgZnVuY3Rpb24gZGVjbHMoZ3JvdXAsIHNyYykgewogICAgICB2YXIg +b3V0ID0gW107CiAgICAgIFAuREVTSUdOX1RPS0VOUy5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7CiAg +ICAgICAgaWYgKHQuZ3JvdXAgIT09IGdyb3VwIHx8ICFzcmMpIHJldHVybjsKICAgICAgICB2YXIg +diA9IHNyY1t0LmtleV07CiAgICAgICAgaWYgKHYgIT0gbnVsbCAmJiBTdHJpbmcodikudHJpbSgp +ICE9PSAiIikgb3V0LnB1c2godC5jc3NWYXIgKyAiOiIgKyBTdHJpbmcodikudHJpbSgpICsgKHQu +dW5pdCB8fCAiIikgKyAiOyIpOwogICAgICB9KTsKICAgICAgcmV0dXJuIG91dDsKICAgIH0KICAg +IHZhciByb290ID0gZGVjbHMoInR5cG8iLCB0b2tlbnMpLmNvbmNhdChkZWNscygiYWJzdGFuZCIs +IHRva2VucyksIGRlY2xzKCJiZXdlZ3VuZyIsIHRva2VucykpOwogICAgdmFyIGxpZ2h0ID0gZGVj +bHMoImZhcmJlLWhlbGwiLCBjb2xvcnMubGlnaHQpLCBkYXJrID0gZGVjbHMoImZhcmJlLWR1bmtl +bCIsIGNvbG9ycy5kYXJrKTsKICAgIHZhciBjc3MgPSAiIjsKICAgIGlmIChyb290Lmxlbmd0aCkg +IGNzcyArPSAiOnJvb3R7IiArIHJvb3Quam9pbigiIikgKyAifVxuIjsKICAgIGlmIChsaWdodC5s +ZW5ndGgpIGNzcyArPSAnOnJvb3RbZGF0YS10aGVtZT0ibGlnaHQiXXsnICsgbGlnaHQuam9pbigi +IikgKyAifVxuIjsKICAgIGlmIChkYXJrLmxlbmd0aCkgIGNzcyArPSAnOnJvb3RbZGF0YS10aGVt +ZT0iZGFyayJdeycgKyBkYXJrLmpvaW4oIiIpICsgIn1cbiI7CiAgICByZXR1cm4gY3NzOwogIH07 +CiAgLy8gU2NocmVpYnQgZGllIFJlZ2VsbiBpbiBlaW5lbiA8c3R5bGUgaWQ9InB1LW92ZXJyaWRl +cyI+LUJsb2NrIChpZGVtcG90ZW50LCBmaWxlOi8vLXRhdWdsaWNoKS4KICBQLmFwcGx5T3ZlcnJp +ZGVDc3MgPSBmdW5jdGlvbiAodWkpIHsKICAgIHZhciBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoInB1LW92ZXJyaWRlcyIpOwogICAgaWYgKCFub2RlKSB7IG5vZGUgPSBkb2N1bWVudC5j +cmVhdGVFbGVtZW50KCJzdHlsZSIpOyBub2RlLmlkID0gInB1LW92ZXJyaWRlcyI7IChkb2N1bWVu +dC5oZWFkIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQobm9kZSk7IH0K +ICAgIG5vZGUudGV4dENvbnRlbnQgPSBQLmJ1aWxkT3ZlcnJpZGVDc3ModWkpOwogIH07CgogIC8q +IC0tLS0tLS0tLS0gVUktVGV4dGUgKGRhdGVuZ2V0cmllYmVuKSAtLS0tLS0tLS0tCiAgICAgUC50 +KGtleSkgbGllZmVydCBkZW4gQWRtaW4tV2VydCAoc2V0dGluZ3MudWkudGV4dHNba2V5XSkgb2Rl +ciBkZW4gRGVmYXVsdC4KICAgICBTdGF0aXNjaGUgRE9NLVRleHRlIHdlcmRlbiB2aWEgc2VsL2F0 +dHIgZHVyY2ggYXBwbHlUZXh0cygpIGdlc2V0enQ7IGR5bmFtaXNjaGUKICAgICAoaW4gUmVuZGVy +LU1vZHVsZW4gZXJ6ZXVndGUpIFN0cmluZ3MgcnVmZW4gUC50KGtleSkgZGlyZWt0IGF1Zi4gKi8K +ICAvLyBEeW5hbWlzY2hlIFRleHRlIChpbiBSZW5kZXItTW9kdWxlbiB2aWEgUC50IGVyemV1Z3Q7 +IGhhYmVuIGtlaW4gRE9NLVp1aGF1c2UgYmVpbSBMYWRlbikuCiAgLy8gU3RhdGlzY2hlIENocm9t +ZS1MYWJlbHMgc3RlaGVuIE5JQ0hUIGhpZXIsIHNvbmRlcm4gYWxzIGRhdGEtdGtleSBpbiBpbmRl +eC5odG1sIHVuZCB3ZXJkZW4KICAvLyBwZXIgUC5zbmFwc2hvdFRleHRzKCkgZXJmYXNzdCAtPiBz +byBpc3Qgd2lya2xpY2ggSkVERSBCZXplaWNobnVuZyBpbSBBZG1pbi1CZXJlaWNoIGVkaXRpZXJi +YXIuCiAgUC5VSV9URVhUUyA9IFsKICAgIHsga2V5OiAibGFnZS5sYWJlbCIsICAgICAgICAgbGFi +ZWw6ICJMYWdlLUtlbm51bmciLCAgICAgICAgICAgICAgICBkZWY6ICJMYWdlIiB9LAogICAgeyBr +ZXk6ICJsYWdlLmRlZmF1bHQiLCAgICAgICBsYWJlbDogIlN0YW5kYXJkLUxhZ2V0ZXh0IiwgICAg +ICAgICAgIGRlZjogIlJlZ2VsYmV0cmllYiIgfSwKICAgIHsga2V5OiAiY29ja3BpdC5waW5uZWQi +LCAgICAgbGFiZWw6ICJGZWVkOiBBbmdlcGlubnQiLCAgICAgICAgICAgICBkZWY6ICJBbmdlcGlu +bnQiIH0sCiAgICB7IGtleTogImZlZWQuY2hyb25pY2xlIiwgICAgIGxhYmVsOiAiRmVlZDogQ2hy +b25payIsICAgICAgICAgICAgICAgZGVmOiAiQ2hyb25payIgfSwKICAgIHsga2V5OiAiZmVlZC5u +ZXciLCAgICAgICAgICAgbGFiZWw6ICJEaWFsb2c6IE5ldWUgTWVsZHVuZyIsICAgICAgICBkZWY6 +ICJOZXVlIE1lbGR1bmciIH0sCiAgICB7IGtleTogImZlZWQuZWRpdCIsICAgICAgICAgIGxhYmVs +OiAiRGlhbG9nOiBNZWxkdW5nIGJlYXJiZWl0ZW4iLCAgZGVmOiAiTWVsZHVuZyBiZWFyYmVpdGVu +IiB9LAogICAgeyBrZXk6ICJmZWVkLmVtcHR5IiwgICAgICAgICBsYWJlbDogIkZlZWQ6IGtlaW5l +IE1lbGR1bmdlbiIsICAgICAgIGRlZjogIktlaW5lIE1lbGR1bmdlbiIgfSwKICAgIHsga2V5OiAi +cm9zdGVyLnRpdGxlIiwgICAgICAgbGFiZWw6ICJEaWVuc3RncnVwcGUtVGl0ZWwiLCAgICAgICAg +ICBkZWY6ICJEaWVuc3RncnVwcGUiIH0sCiAgICB7IGtleTogInNlYXJjaC5zY29wZUFsbCIsICAg +IGxhYmVsOiAiU3VjaGU6IEZpbHRlciBBbGxlIiwgICAgICAgICAgZGVmOiAiQWxsZSIgfSwKICAg +IHsga2V5OiAic2VhcmNoLnNjb3BlQ21kIiwgICAgbGFiZWw6ICJTdWNoZTogRmlsdGVyIEJlZmVo +bGUiLCAgICAgICBkZWY6ICJCZWZlaGxlIiB9LAogICAgeyBrZXk6ICJzZWFyY2guc2NvcGVCdWxs +IiwgICBsYWJlbDogIlN1Y2hlOiBGaWx0ZXIgTWVsZHVuZ2VuIiwgICAgIGRlZjogIk1lbGR1bmdl +biIgfSwKICAgIHsga2V5OiAic2VhcmNoLnNjb3BlRG9jIiwgICAgbGFiZWw6ICJTdWNoZTogRmls +dGVyIERva3VtZW50ZSIsICAgICBkZWY6ICJEb2t1bWVudGUiIH0sCiAgICB7IGtleTogIndoYXRz +bmV3Lm5hdiIsICAgICAgIGxhYmVsOiAiU2lkZWJhcjogVXBkYXRlcy1FaW50cmFnIiwgICAgZGVm +OiAiVXBkYXRlcyIgfSwKICAgIHsga2V5OiAid2hhdHNuZXcudGl0bGUiLCAgICAgbGFiZWw6ICJV +cGRhdGVzLU1vZGFsOiBUaXRlbCIsICAgICAgICBkZWY6ICJVcGRhdGVzIiB9LAogICAgeyBrZXk6 +ICJ3aGF0c25ldy5zZWVuIiwgICAgICBsYWJlbDogIlVwZGF0ZXMtTW9kYWw6IHNlaXQgQmVzdWNo +IiwgIGRlZjogIlNlaXQgZGVpbmVtIGxldHp0ZW4gQmVzdWNoIiB9LAogICAgeyBrZXk6ICJ3aGF0 +c25ldy5yZWNlbnQiLCAgICBsYWJlbDogIlVwZGF0ZXMtTW9kYWw6IHp1bGV0enQgZ2XDpG5kZXJ0 +IiwgZGVmOiAiWnVsZXR6dCBnZcOkbmRlcnRlcyBXaXNzZW4iIH0sCiAgICB7IGtleTogIndoYXRz +bmV3LmVtcHR5IiwgICAgIGxhYmVsOiAiVXBkYXRlcy1Nb2RhbDogbmljaHRzIE5ldWVzIiwgZGVm +OiAiQWxsZXMgZ2VzZWhlbiDigJQgbmljaHRzIE5ldWVzLiIgfQogIF07CiAgLy8gQXVzIGluZGV4 +Lmh0bWwgZXJmYXNzdGUgRGVmYXVsdC1UZXh0ZSAoZGF0YS10a2V5KS4geyBrZXk6IHtsYWJlbCwg +ZGVmLCBhdHRyfSB9CiAgUC5URVhUX0RFRlMgPSB7fTsKICBQLnNuYXBzaG90VGV4dHMgPSBmdW5j +dGlvbiAoKSB7CiAgICB2YXIgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0 +YS10a2V5XSIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewog +ICAgICB2YXIgbiA9IG5vZGVzW2ldLCBrID0gbi5nZXRBdHRyaWJ1dGUoImRhdGEtdGtleSIpOyBp +ZiAoIWsgfHwgUC5URVhUX0RFRlNba10pIGNvbnRpbnVlOwogICAgICB2YXIgYXR0ciA9IG4uZ2V0 +QXR0cmlidXRlKCJkYXRhLXRhdHRyIikgfHwgIiI7CiAgICAgIFAuVEVYVF9ERUZTW2tdID0geyBs +YWJlbDogbi5nZXRBdHRyaWJ1dGUoImRhdGEtdGxhYmVsIikgfHwgaywgYXR0cjogYXR0ciwKICAg +ICAgICBkZWY6IGF0dHIgPyAobi5nZXRBdHRyaWJ1dGUoYXR0cikgfHwgIiIpIDogKG4udGV4dENv +bnRlbnQgfHwgIiIpLnRyaW0oKSB9OwogICAgfQogIH07CiAgUC50ID0gZnVuY3Rpb24gKGtleSwg +ZmIpIHsKICAgIHZhciB0eCA9IChQLmNvbnRlbnQgJiYgUC5jb250ZW50LnNldHRpbmdzICYmIFAu +Y29udGVudC5zZXR0aW5ncy51aSAmJiBQLmNvbnRlbnQuc2V0dGluZ3MudWkudGV4dHMpIHx8IHt9 +OwogICAgaWYgKHR4W2tleV0gIT0gbnVsbCAmJiB0eFtrZXldICE9PSAiIikgcmV0dXJuIHR4W2tl +eV07CiAgICBpZiAoUC5URVhUX0RFRlNba2V5XSkgcmV0dXJuIFAuVEVYVF9ERUZTW2tleV0uZGVm +OwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBQLlVJX1RFWFRTLmxlbmd0aDsgaSsrKSBpZiAoUC5V +SV9URVhUU1tpXS5rZXkgPT09IGtleSkgcmV0dXJuIFAuVUlfVEVYVFNbaV0uZGVmOwogICAgcmV0 +dXJuIGZiICE9IG51bGwgPyBmYiA6IGtleTsKICB9OwogIC8vIFZlcmVpbnRlIExpc3RlIGZ1ZXIg +ZGFzIEJlc2NocmlmdHVuZ2VuLUZvcm11bGFyIChkeW5hbWlzY2hlICsgRE9NLWVyZmFzc3RlKS4K +ICBQLmFsbFRleHRzID0gZnVuY3Rpb24gKCkgewogICAgdmFyIG91dCA9IFtdLCBzZWVuID0ge307 +CiAgICBQLlVJX1RFWFRTLmZvckVhY2goZnVuY3Rpb24gKGQpIHsgaWYgKCFzZWVuW2Qua2V5XSkg +eyBzZWVuW2Qua2V5XSA9IDE7IG91dC5wdXNoKHsga2V5OiBkLmtleSwgbGFiZWw6IGQubGFiZWws +IGRlZjogZC5kZWYgfSk7IH0gfSk7CiAgICBPYmplY3Qua2V5cyhQLlRFWFRfREVGUykuZm9yRWFj +aChmdW5jdGlvbiAoaykgeyBpZiAoIXNlZW5ba10pIHsgc2VlbltrXSA9IDE7IG91dC5wdXNoKHsg +a2V5OiBrLCBsYWJlbDogUC5URVhUX0RFRlNba10ubGFiZWwsIGRlZjogUC5URVhUX0RFRlNba10u +ZGVmIH0pOyB9IH0pOwogICAgcmV0dXJuIG91dDsKICB9OwogIFAuYXBwbHlUZXh0cyA9IGZ1bmN0 +aW9uICgpIHsKICAgIFAuVUlfVEVYVFMuZm9yRWFjaChmdW5jdGlvbiAoZCkgewogICAgICBpZiAo +IWQuc2VsKSByZXR1cm47CiAgICAgIHZhciBuID0gUC4kKGQuc2VsKTsgaWYgKCFuKSByZXR1cm47 +CiAgICAgIGlmIChkLmF0dHIpIG4uc2V0QXR0cmlidXRlKGQuYXR0ciwgUC50KGQua2V5KSk7IGVs +c2Ugbi50ZXh0Q29udGVudCA9IFAudChkLmtleSk7CiAgICB9KTsKICAgIHZhciBub2RlcyA9IGRv +Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXRrZXldIik7CiAgICBmb3IgKHZhciBpID0g +MDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBuMiA9IG5vZGVzW2ldLCBrID0g +bjIuZ2V0QXR0cmlidXRlKCJkYXRhLXRrZXkiKTsgaWYgKCFrKSBjb250aW51ZTsKICAgICAgdmFy +IGF0dHIgPSBuMi5nZXRBdHRyaWJ1dGUoImRhdGEtdGF0dHIiKSB8fCAiIjsKICAgICAgaWYgKGF0 +dHIpIG4yLnNldEF0dHJpYnV0ZShhdHRyLCBQLnQoaykpOyBlbHNlIG4yLnRleHRDb250ZW50ID0g +UC50KGspOwogICAgfQogIH07CgogIC8qIC0tLS0tLS0tLS0gTW9kdWxlL0xpbWl0cyAoZGF0ZW5n +ZXRyaWViZW4pIC0tLS0tLS0tLS0KICAgICBQLm1vZChrZXkpIGxpZWZlcnQgZGVuIEFkbWluLVdl +cnQgKHNldHRpbmdzLnVpLm1vZHVsZXNba2V5XSkgb2RlciBkZW4gRGVmYXVsdC4gKi8KICBQLk1P +RFVMRV9WQVJTID0gWwogICAgeyBrZXk6ICJ3aGF0c25ldy5zZWVuTGltaXQiLCAgIGxhYmVsOiAi +TmV1ZXMtTW9kYWw6IG1heC4gbmV1ZSBFaW50csOkZ2UiLCAgICAgdHlwZTogIm51bSIsICBkZWY6 +IDEyIH0sCiAgICB7IGtleTogIndoYXRzbmV3LnJlY2VudExpbWl0IiwgbGFiZWw6ICJOZXVlcy1N +b2RhbDogbWF4LiB6dWxldHp0IGdlw6RuZGVydCIsICB0eXBlOiAibnVtIiwgIGRlZjogMTIgfSwK +ICAgIHsga2V5OiAic2VhcmNoLmRvY0xpbWl0IiwgICAgIGxhYmVsOiAiU3VjaGU6IG1heC4gRG9r +dW1lbnRlIiwgICAgICAgICAgICAgICAgdHlwZTogIm51bSIsICBkZWY6IDMwIH0sCiAgICB7IGtl +eTogInNlYXJjaC5idWxsTGltaXQiLCAgICBsYWJlbDogIlN1Y2hlOiBtYXguIE1lbGR1bmdlbiIs +ICAgICAgICAgICAgICAgIHR5cGU6ICJudW0iLCAgZGVmOiA2IH0sCiAgICB7IGtleTogInNlYXJj +aC5jbWRMaW1pdCIsICAgICBsYWJlbDogIlN1Y2hlOiBtYXguIEJlZmVobGUiLCAgICAgICAgICAg +ICAgICAgIHR5cGU6ICJudW0iLCAgZGVmOiA4IH0sCiAgICB7IGtleTogImhpZ2hsaWdodFB1bHNl +IiwgICAgICBsYWJlbDogIldpY2h0aWctTWVsZHVuZ2VuIHB1bHNpZXJlbiIsICAgICAgICAgIHR5 +cGU6ICJib29sIiwgZGVmOiB0cnVlIH0KICBdOwogIFAubW9kID0gZnVuY3Rpb24gKGtleSwgZmIp +IHsKICAgIHZhciBtID0gKFAuY29udGVudCAmJiBQLmNvbnRlbnQuc2V0dGluZ3MgJiYgUC5jb250 +ZW50LnNldHRpbmdzLnVpICYmIFAuY29udGVudC5zZXR0aW5ncy51aS5tb2R1bGVzKSB8fCB7fTsK +ICAgIGlmIChtW2tleV0gIT0gbnVsbCAmJiBtW2tleV0gIT09ICIiKSB7CiAgICAgIGZvciAodmFy +IGogPSAwOyBqIDwgUC5NT0RVTEVfVkFSUy5sZW5ndGg7IGorKykgaWYgKFAuTU9EVUxFX1ZBUlNb +al0ua2V5ID09PSBrZXkpIHsKICAgICAgICByZXR1cm4gUC5NT0RVTEVfVkFSU1tqXS50eXBlID09 +PSAibnVtIiA/IChwYXJzZUZsb2F0KG1ba2V5XSkgfHwgUC5NT0RVTEVfVkFSU1tqXS5kZWYpIDog +KG1ba2V5XSA9PT0gdHJ1ZSB8fCBtW2tleV0gPT09ICJ0cnVlIik7CiAgICAgIH0KICAgICAgcmV0 +dXJuIG1ba2V5XTsKICAgIH0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUC5NT0RVTEVfVkFSUy5s +ZW5ndGg7IGkrKykgaWYgKFAuTU9EVUxFX1ZBUlNbaV0ua2V5ID09PSBrZXkpIHJldHVybiBQLk1P +RFVMRV9WQVJTW2ldLmRlZjsKICAgIHJldHVybiBmYjsKICB9OwoKICAvKiBSb3N0ZXItRGF0ZW5t +b2RlbGwgbm9ybWFsaXNpZXJlbiAoUGhhc2UgNikuIFJ1ZWNrd2FlcnRza29tcGF0aWJlbDoKICAg +ICBBbHQtRm9ybSB7IGdyb3VwLCBzZWN0aW9uczpbe3Jvd3M6W3tyb2xlLHN1YixuYW1lfV19XSB9 +IC0+IG5ldWUgRm9ybQogICAgIHsgZ3JvdXBzOlsge2lkLGxhYmVsLHNlY3Rpb25zOlt7aWQsdGl0 +bGU/LHJvd3M6W3tpZCxyb2xlLHN1YixuYW1lfV19XX0gXSwgZ3JvdXAgfS4KICAgICBCZXJlaXRz +LW5ldWUgRGF0ZW4gd2VyZGVuIG51ciBkZWZlbnNpdiBtaXQgZmVobGVuZGVuIElEcyBlcmdhZW56 +dC4gKi8KICBQLm5vcm1hbGl6ZVJvc3RlciA9IGZ1bmN0aW9uIChSKSB7CiAgICBSID0gUiB8fCB7 +fTsKICAgIGZ1bmN0aW9uIHJvd3MoYXJyKSB7IHJldHVybiAoYXJyIHx8IFtdKS5tYXAoZnVuY3Rp +b24gKHIpIHsgdmFyIG8gPSB7IGlkOiByLmlkIHx8IFAudWlkKCJyciIpLCByb2xlOiByLnJvbGUg +fHwgIiIsIHN1Yjogci5zdWIgfHwgIiIsIG5hbWU6IHIubmFtZSB8fCAiIiB9OyBpZiAoci5hcHcp +IG8uYXB3ID0gdHJ1ZTsgcmV0dXJuIG87IH0pOyB9CiAgICBmdW5jdGlvbiBzZWNzKGFycikgeyBy +ZXR1cm4gKGFyciB8fCBbXSkubWFwKGZ1bmN0aW9uIChzKSB7IHJldHVybiB7IGlkOiBzLmlkIHx8 +IFAudWlkKCJycyIpLCB0aXRsZTogcy50aXRsZSB8fCAiIiwgcm93czogcm93cyhzLnJvd3MpIH07 +IH0pOyB9CiAgICBpZiAoIUFycmF5LmlzQXJyYXkoUi5ncm91cHMpIHx8ICFSLmdyb3Vwcy5sZW5n +dGgpIHsKICAgICAgUiA9IHsgZ3JvdXA6IFIuZ3JvdXAgfHwgIiIsIGdyb3VwczogWyB7IGlkOiBQ +LnVpZCgicmciKSwgbGFiZWw6IFIuZ3JvdXAgfHwgIkEiLCBzZWN0aW9uczogc2VjcyhSLnNlY3Rp +b25zKSB9IF0gfTsKICAgIH0gZWxzZSB7CiAgICAgIFIuZ3JvdXBzLmZvckVhY2goZnVuY3Rpb24g +KGcpIHsgaWYgKCFnLmlkKSBnLmlkID0gUC51aWQoInJnIik7IGcubGFiZWwgPSBnLmxhYmVsIHx8 +ICIiOyBnLnNlY3Rpb25zID0gc2VjcyhnLnNlY3Rpb25zKTsgfSk7CiAgICB9CiAgICBpZiAoIVIu +Z3JvdXAgJiYgUi5ncm91cHNbMF0pIFIuZ3JvdXAgPSBSLmdyb3Vwc1swXS5sYWJlbCB8fCAiIjsK +ICAgIHJldHVybiBSOwogIH07CgogIFAubG9hZFN0YXRlID0gZnVuY3Rpb24gKCkgewogICAgUC5s +YXN0VmlzaXQgPSBQLnJlYWQoUC5MUy52aXNpdCwgMCk7CiAgICBQLmNvbnRlbnRSZXYgPSB3aW5k +b3cuUE9SVEFMX0NPTlRFTlRfUkVWIHx8IHsgbjogMCwgdHM6IG51bGwsIHVzZXI6IG51bGwgfTsK +ICAgIFAubmF2UmV2ID0gd2luZG93LlBPUlRBTF9OQVZfUkVWIHx8IHsgbjogMCwgdHM6IG51bGws +IHVzZXI6IG51bGwgfTsKICAgIC8vIE5hdmlnYXRpb24KICAgIHZhciBuYXZEcmFmdCA9IFAucmVh +ZChQLkxTLm5hdiwgbnVsbCk7CiAgICBpZiAobmF2RHJhZnQgJiYgbmF2RHJhZnQuc2VjdGlvbnMp +IHsgUC5OQVYgPSBuYXZEcmFmdDsgUC5oYXNOYXZEcmFmdCA9IHRydWU7IH0KICAgIGVsc2UgeyBQ +Lk5BViA9IHdpbmRvdy5QT1JUQUxfTkFWIHx8IHsgc2VjdGlvbnM6IFtdIH07IFAuaGFzTmF2RHJh +ZnQgPSBmYWxzZTsgfQogICAgLy8gSW5oYWx0CiAgICBQLlNFRUQgPSB7IGJ1bGxldGluczogd2lu +ZG93LlBPUlRBTF9CVUxMRVRJTlMgfHwgW10sCiAgICAgICAgICAgICAgIHBhbmVsczogd2luZG93 +LlBPUlRBTF9QQU5FTFMgfHwgW10sIHJvc3Rlcjogd2luZG93LlBPUlRBTF9ST1NURVIgfHwgeyBn +cm91cDogIiIsIHNlY3Rpb25zOiBbXSB9LAogICAgICAgICAgICAgICBsaW5rY29sczogd2luZG93 +LlBPUlRBTF9MSU5LQ09MUyB8fCBbXSwKICAgICAgICAgICAgICAga2VubndvZXJ0ZXI6IHdpbmRv +dy5QT1JUQUxfS0VOTldPRVJURVIgfHwgW10sCiAgICAgICAgICAgICAgIHBydWVmdW5nOiB3aW5k +b3cuUE9SVEFMX1BSVUVGVU5HIHx8IFtdLAogICAgICAgICAgICAgICBsYWdlOiB3aW5kb3cuUE9S +VEFMX0xBR0UgfHwgeyB0ZXh0OiAiUmVnZWxiZXRyaWViIiwgbGV2ZWw6ICJvayIgfSwKICAgICAg +ICAgICAgICAgc2V0dGluZ3M6IHdpbmRvdy5QT1JUQUxfU0VUVElOR1MgfHwgUC5kZWZhdWx0U2V0 +dGluZ3MoKSB9OwogICAgdmFyIGRyYWZ0ID0gUC5yZWFkKFAuTFMuY29udGVudCwgbnVsbCk7CiAg +ICBpZiAoZHJhZnQgJiYgZHJhZnQuYnVsbGV0aW5zKSB7IFAuY29udGVudCA9IGRyYWZ0OyBQLmhh +c0RyYWZ0ID0gdHJ1ZTsgfQogICAgZWxzZSB7IFAuY29udGVudCA9IFAuY2xvbmUoUC5TRUVEKTsg +UC5oYXNEcmFmdCA9IGZhbHNlOyB9CiAgICBQLmNvbnRlbnQucm9zdGVyID0gUC5ub3JtYWxpemVS +b3N0ZXIoUC5jb250ZW50LnJvc3RlciB8fCBQLlNFRUQucm9zdGVyKTsKICAgIGlmICghQXJyYXku +aXNBcnJheShQLmNvbnRlbnQubGlua2NvbHMpKSBQLmNvbnRlbnQubGlua2NvbHMgPSBQLmNsb25l +KFAuU0VFRC5saW5rY29scyB8fCBbXSk7ICAgLy8gTGlua3NhbW1sdW5nZW4gKHJlY2h0cykKICAg +IGlmICghQXJyYXkuaXNBcnJheShQLmNvbnRlbnQua2VubndvZXJ0ZXIpKSBQLmNvbnRlbnQua2Vu +bndvZXJ0ZXIgPSBQLmNsb25lKFAuU0VFRC5rZW5ud29lcnRlciB8fCBbXSk7ICAgLy8gS2VubnfD +tnJ0ZXIgKE1pdHRlKQogICAgaWYgKCFBcnJheS5pc0FycmF5KFAuY29udGVudC5wcnVlZnVuZykp +IFAuY29udGVudC5wcnVlZnVuZyA9IFAuY2xvbmUoUC5TRUVELnBydWVmdW5nIHx8IFtdKTsgICAv +LyBQcsO8Zi1MaXN0ZSAoTWlncmF0aW9ucy1MaW5rcykKICAgIGlmICghUC5jb250ZW50LmxhZ2Ug +fHwgIVAuY29udGVudC5sYWdlLnRleHQpIFAuY29udGVudC5sYWdlID0gUC5jbG9uZShQLlNFRUQu +bGFnZSk7CiAgICBpZiAoIVAuY29udGVudC5zZXR0aW5ncykgUC5jb250ZW50LnNldHRpbmdzID0g +UC5jbG9uZShQLlNFRUQuc2V0dGluZ3MpOwogICAgUC5ub3JtYWxpemVTZXR0aW5ncyhQLmNvbnRl +bnQuc2V0dGluZ3MpOyAgIC8vIG5ldWUgdWkuKi1GZWxkZXIgZGVmZW5zaXYgZXJnYWVuemVuIChi +YWNrLWNvbXBhdCkKICB9OwoKICB2YXIgcGVyc2lzdFRpbWVyOwogIFAuc2NoZWR1bGVQZXJzaXN0 +ID0gZnVuY3Rpb24gKCkgeyBjbGVhclRpbWVvdXQocGVyc2lzdFRpbWVyKTsgcGVyc2lzdFRpbWVy +ID0gc2V0VGltZW91dChQLnBlcnNpc3QsIDQ1MCk7IH07CiAgLy8gUmVkYWt0ZXVyIChQLmxpdmUp +OiBqZWRlIEFlbmRlcnVuZyB3aXJkIHNvZm9ydCBhdWYgZGllIEZyZWlnYWJlIGdlc2NocmllYmVu +LgogIC8vIExlc2VyL0ZhbGxiYWNrIChmaWxlOi8vKTogQWVuZGVydW5nIGJsZWlidCBsb2thbGVy +IEVudHd1cmYgKGxvY2FsU3RvcmFnZSkuCiAgUC5wZXJzaXN0ID0gZnVuY3Rpb24gKCkgeyBQLndy +aXRlKFAuTFMuY29udGVudCwgUC5jb250ZW50KTsgUC5oYXNEcmFmdCA9IHRydWU7IGlmIChQLmxp +dmUpIFAuc2NoZWR1bGVTZXJ2ZXJQdWJsaXNoKCJjb250ZW50Iik7IGlmIChQLnVwZGF0ZUJhbm5l +cikgUC51cGRhdGVCYW5uZXIoKTsgUC5lbWl0KCJjb250ZW50OmNoYW5nZWQiLCBQLmNvbnRlbnQp +OyB9OwogIFAucGVyc2lzdE5hdiA9IGZ1bmN0aW9uICgpIHsgUC53cml0ZShQLkxTLm5hdiwgUC5O +QVYpOyBQLmhhc05hdkRyYWZ0ID0gdHJ1ZTsgaWYgKFAubGl2ZSkgUC5zY2hlZHVsZVNlcnZlclB1 +Ymxpc2goIm5hdiIpOyBpZiAoUC51cGRhdGVCYW5uZXIpIFAudXBkYXRlQmFubmVyKCk7IFAuZW1p +dCgibmF2OmNoYW5nZWQiLCBQLk5BVik7IH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRvYXN0ICovCiAgdmFyIHRvYXN0 +VGltZXI7CiAgUC50b2FzdCA9IGZ1bmN0aW9uIChtc2csIHdhcm4pIHsKICAgIHZhciB0ID0gUC4k +KCIjdG9hc3QiKTsgaWYgKCF0KSByZXR1cm47CiAgICB0LmNsYXNzTmFtZSA9ICJ0b2FzdCIgKyAo +d2FybiA/ICIgd2FybiIgOiAiIik7IHQuaW5uZXJIVE1MID0gKHdhcm4gPyBQLmljKCJhbGVydCIp +IDogUC5pYygiY2hlY2siKSkgKyAiPHNwYW4+PC9zcGFuPiI7CiAgICBQLiQoInNwYW4iLCB0KS50 +ZXh0Q29udGVudCA9IG1zZzsgdC5jbGFzc0xpc3QuYWRkKCJzaG93Iik7CiAgICBjbGVhclRpbWVv +dXQodG9hc3RUaW1lcik7IHRvYXN0VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdC5j +bGFzc0xpc3QucmVtb3ZlKCJzaG93Iik7IH0sIDMyMDApOwogIH07CgogIC8qIC0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRoZW1lIC8g +TGF5b3V0IC8gTG9nbyAvIE1vYmlsZSAqLwogIFAuYXBwbHlUaGVtZSA9IGZ1bmN0aW9uICh0KSB7 +CiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLXRoZW1lIiwg +dCk7CiAgICB2YXIgYiA9IFAuJCgiI3RoZW1lLXRvZ2dsZSIpOyBpZiAoYikgeyBiLmlubmVySFRN +TCA9IHQgPT09ICJkYXJrIiA/IFAuaWMoInN1biIpIDogUC5pYygibW9vbiIpOyBiLnRpdGxlID0g +dCA9PT0gImRhcmsiID8gIkhlbGxlcyBEZXNpZ24iIDogIkR1bmtsZXMgRGVzaWduIjsgfQogICAg +UC5hcHBseUJyYW5kQ29sb3JzKCk7ICAgLy8gTWFya2VuLVTDtm51bmcgbmFjaCBUaGVtZS1GbGlw +IGVybmV1dCBzaWNoZXJuIChQaGFzZSA4KQogIH07CiAgUC50b2dnbGVUaGVtZSA9IGZ1bmN0aW9u +ICgpIHsgdmFyIHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRh +LXRoZW1lIikgPT09ICJkYXJrIiA/ICJsaWdodCIgOiAiZGFyayI7IFAud3JpdGUoUC5MUy50aGVt +ZSwgdCk7IFAuYXBwbHlUaGVtZSh0KTsgfTsKICBQLmluaXRUaGVtZSA9IGZ1bmN0aW9uICgpIHsK +ICAgIC8vIFJlaWhlbmZvbGdlOiBwZXJzb2VubGljaGUgV2FobCAobG9jYWxTdG9yYWdlKSA+IHBv +cnRhbHdlaXRlciBTdGFuZGFyZCAoU2V0dGluZ3MpID4gT1MtUHJhZWZlcmVuei4KICAgIHZhciBz +ID0gUC5yZWFkKFAuTFMudGhlbWUsIG51bGwpOwogICAgaWYgKHMgIT09ICJkYXJrIiAmJiBzICE9 +PSAibGlnaHQiKSB7CiAgICAgIHZhciBkZWYgPSBQLmNvbnRlbnQgJiYgUC5jb250ZW50LnNldHRp +bmdzICYmIFAuY29udGVudC5zZXR0aW5ncy5kZWZhdWx0VGhlbWU7CiAgICAgIGlmIChkZWYgPT09 +ICJkYXJrIiB8fCBkZWYgPT09ICJsaWdodCIpIHMgPSBkZWY7CiAgICAgIGVsc2UgeyB0cnkgeyBz +ID0gbWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkiKS5tYXRjaGVzID8g +ImxpZ2h0IiA6ICJkYXJrIjsgfSBjYXRjaCAoZSkgeyBzID0gImRhcmsiOyB9IH0KICAgIH0KICAg +IFAuYXBwbHlUaGVtZShzKTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQb3J0YWwtRWluc3RlbGx1bmdlbiBhbndl +bmRlbiAoUGhhc2UgNykgKi8KICAvLyBCcmFuZGluZyAoVGl0ZWwvTmFtZS9VbnRlcnRpdGVsL0Ry +dWNrZnVzcykgYXVzIGRlbiBTZXR0aW5ncyBpbiBkaWUgU2VpdGUgc2NocmVpYmVuIOKAlCBwZXIg +dGV4dENvbnRlbnQgKGtlaW4gSFRNTC1JbmplY3QpLgogIC8vIERhdGVuZ2V0cmllYmVuZSBDRC1N +YXJrZSAoUGhhc2UgOCk6IGJyYW5kQ29sb3IvYnJhbmRDb2xvcjIgYWxzIENTUy1DdXN0b20tUHJv +cGVydGllcwogIC8vIGF1ZiA6cm9vdC4gTGVlciAtPiBlbnRmZXJuZW4gLT4gZGllIENTUy1UaGVt +ZS1Wb3JnYWJlIChEdW5rZWxibGF1KSBibGVpYnQuIElubGluZS1Qcm9wcwogIC8vIHNjaGxhZ2Vu +IGRpZSBUaGVtZS1SZWdlbHNhZXR6ZSwgZGFoZXIgVm9ycmFuZyBvaG5lIGRlbiBEZWZhdWx0IHp1 +IHVlYmVyc2NocmVpYmVuLgogIFAuYXBwbHlCcmFuZENvbG9ycyA9IGZ1bmN0aW9uICgpIHsKICAg +IHZhciBiID0gKFAuY29udGVudCAmJiBQLmNvbnRlbnQuc2V0dGluZ3MgJiYgUC5jb250ZW50LnNl +dHRpbmdzLmJyYW5kaW5nKSB8fCB7fTsKICAgIHZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRF +bGVtZW50LnN0eWxlOwogICAgaWYgKGIuYnJhbmRDb2xvcikgewogICAgICByb290LnNldFByb3Bl +cnR5KCItLWJyYW5kIiwgYi5icmFuZENvbG9yKTsKICAgICAgcm9vdC5zZXRQcm9wZXJ0eSgiLS1i +cmFuZC0yIiwgYi5icmFuZENvbG9yMiB8fCAoImNvbG9yLW1peChpbiBva2xjaCwgIiArIGIuYnJh +bmRDb2xvciArICIgODIlLCBibGFjaykiKSk7CiAgICAgIC8vIEhlYWRlciBmb2xndCBkZXIgTWFy +a2UgKG51ciB3ZW5uIGdlc2V0enQ7IHNvbnN0IENTUy1EZWZhdWx0LUdyYWRpZW50KS4KICAgICAg +cm9vdC5zZXRQcm9wZXJ0eSgiLS1oZWFkZXItYmciLCAibGluZWFyLWdyYWRpZW50KDE4MGRlZywg +Y29sb3ItbWl4KGluIG9rbGNoLCAiICsgYi5icmFuZENvbG9yICsgIiA0MiUsIGJsYWNrKSwgY29s +b3ItbWl4KGluIG9rbGNoLCAiICsgYi5icmFuZENvbG9yICsgIiAyNiUsIGJsYWNrKSkiKTsKICAg +IH0gZWxzZSB7CiAgICAgIHJvb3QucmVtb3ZlUHJvcGVydHkoIi0tYnJhbmQiKTsgcm9vdC5yZW1v +dmVQcm9wZXJ0eSgiLS1icmFuZC0yIik7IHJvb3QucmVtb3ZlUHJvcGVydHkoIi0taGVhZGVyLWJn +Iik7CiAgICB9CiAgfTsKICBQLmFwcGx5QnJhbmRpbmcgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIg +YiA9IChQLmNvbnRlbnQgJiYgUC5jb250ZW50LnNldHRpbmdzICYmIFAuY29udGVudC5zZXR0aW5n +cy5icmFuZGluZykgfHwge307CiAgICBpZiAoYi5wb3J0YWxUaXRsZSkgZG9jdW1lbnQudGl0bGUg +PSBiLnBvcnRhbFRpdGxlOwogICAgdmFyIGJuID0gUC4kKCIuYnJhbmQtbmFtZSBiIik7IGlmIChi +biAmJiBiLmJyYW5kTmFtZSkgYm4udGV4dENvbnRlbnQgPSBiLmJyYW5kTmFtZTsKICAgIHZhciBi +cyA9IFAuJCgiLmJyYW5kLW5hbWUgc3BhbiIpOyBpZiAoYnMgJiYgYi5icmFuZFN1YnRpdGxlKSBi +cy50ZXh0Q29udGVudCA9IGIuYnJhbmRTdWJ0aXRsZTsKICAgIHZhciBwZiA9IFAuJCgiLnByaW50 +LWZvb3QiKTsgaWYgKHBmICYmIGIucHJpbnRGb290ZXIpIHBmLnRleHRDb250ZW50ID0gYi5wcmlu +dEZvb3RlcjsKICAgIFAuYXBwbHlCcmFuZENvbG9ycygpOwogICAgUC5hcHBseVVpVmFycygpOyAg +IC8vIERhcnN0ZWxsdW5ncy1PdmVycmlkZXMgKFNjaHJpZnRncsO2w59lbi9CcmVpdGVuIOKApikK +ICAgIFAuYXBwbHlPdmVycmlkZUNzcygpOyAgIC8vIERlc2lnbi1Ub2tlbnMgKEZhcmJlbiBqZSBU +aGVtZSwgVHlwby9BYnN0YW5kL0Jld2VndW5nKSDigJQgUGhhc2UgMTMKICAgIFAuYXBwbHlEZW5z +aXR5KCk7ICAvLyBEaWNodGUtUHJlc2V0IChrb21wYWt0L2tvbWZvcnRhYmVsKSDigJQgUGhhc2Ug +MTIKICAgIFAuYXBwbHlIaWdobGlnaHQoKTsgLy8gTWVsZHVuZ3MtUHVscyBhbi9hdXMgKE1PRFVM +RV9WQVJTLmhpZ2hsaWdodFB1bHNlKQogICAgUC5hcHBseVRleHRzKCk7ICAgIC8vIFVJLUJlc2No +cmlmdHVuZ2VuIGF1cyBkZW4gU2V0dGluZ3MgKFBoYXNlIDEzKQogICAgUC5pbml0TG9nbygpOyAg +IC8vIExvZ28tVVJMIGF1cyBkZW4gU2V0dGluZ3MgKFBoYXNlIDgpCiAgfTsKICAvLyBPcmNoZXN0 +cmllcnQgZGFzIEFud2VuZGVuIGFsbGVyIFNldHRpbmdzIChpZGVtcG90ZW50LCBhdWNoIG5hY2gg +ZGVtIFNwZWljaGVybiBhdWZydWZiYXIpLgogIFAuYXBwbHlTZXR0aW5ncyA9IGZ1bmN0aW9uICgp +IHsgUC5hcHBseUJyYW5kaW5nKCk7IH07CiAgUC5hcHBseUNvbGxhcHNlID0gZnVuY3Rpb24gKCkg +ewogICAgdmFyIGMgPSBQLnJlYWQoUC5MUy5jb2xsYXBzZSwgeyBsOiBmYWxzZSwgcjogZmFsc2Ug +fSksIHNoID0gUC4kKCIjc2hlbGwiKTsKICAgIHNoLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNl +LWwiLCAhIWMubCk7IHNoLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlLXIiLCAhIWMucik7CiAg +ICBQLiQoIiNjb2xsYXBzZS1sIikuY2xhc3NMaXN0LnRvZ2dsZSgiYXJtZWQiLCAhYy5sKTsgUC4k +KCIjY29sbGFwc2UtciIpLmNsYXNzTGlzdC50b2dnbGUoImFybWVkIiwgIWMucik7CiAgfTsKICBQ +LnRvZ2dsZUNvbGxhcHNlID0gZnVuY3Rpb24gKHNpZGUpIHsgdmFyIGMgPSBQLnJlYWQoUC5MUy5j +b2xsYXBzZSwgeyBsOiBmYWxzZSwgcjogZmFsc2UgfSk7IGNbc2lkZV0gPSAhY1tzaWRlXTsgUC53 +cml0ZShQLkxTLmNvbGxhcHNlLCBjKTsgUC5hcHBseUNvbGxhcHNlKCk7IH07CiAgUC5pbml0TG9n +byA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBzbG90ID0gUC4kKCIjbG9nby1zbG90Iik7IGlmICgh +c2xvdCkgcmV0dXJuOwogICAgdmFyIGIgPSAoUC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5n +cyAmJiBQLmNvbnRlbnQuc2V0dGluZ3MuYnJhbmRpbmcpIHx8IHt9OwogICAgdmFyIHNyYyA9IGIu +bG9nb1VybCB8fCAiYXNzZXRzL2ltZy9wb2xpemVpc3Rlcm4ucG5nIjsgICAvLyBQZmFkIE9ERVIg +ZGF0YS1VUkkgKGZpbGU6Ly8tdGF1Z2xpY2gpCiAgICBzbG90LmNsYXNzTGlzdC5hZGQoImZpbGxl +ZCIpOwogICAgdmFyIGltZyA9IFAuJCgiaW1nIiwgc2xvdCk7IGlmICghaW1nKSB7IHNsb3QuaW5u +ZXJIVE1MID0gJzxpbWcgYWx0PSIiPic7IGltZyA9IFAuJCgiaW1nIiwgc2xvdCk7IH0KICAgIGlt +Zy5hbHQgPSBiLmJyYW5kTmFtZSB8fCAiUG9ydGFsIFVuaW9uIjsKICAgIGlmIChpbWcuZ2V0QXR0 +cmlidXRlKCJzcmMiKSAhPT0gc3JjKSBpbWcuc3JjID0gc3JjOwogIH07CiAgUC5jbG9zZU1vYmls +ZSA9IGZ1bmN0aW9uICgpIHsgUC4kKCIucmFpbC1sIikuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIp +OyBQLiQoIi5yYWlsLXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIik7IHZhciBiID0gUC4kKCIj +bW9iaWxlLWJnIik7IGlmIChiKSBiLnJlbW92ZSgpOyB9OwogIFAub3BlblJhaWwgPSBmdW5jdGlv +biAoc2VsKSB7IFAuY2xvc2VNb2JpbGUoKTsgUC4kKHNlbCkuY2xhc3NMaXN0LmFkZCgib3BlbiIp +OyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFAuZWwoImRpdiIsIHsgY2xhc3M6ICJtb2JpbGUt +YmciLCBpZDogIm1vYmlsZS1iZyIsIG9uY2xpY2s6IFAuY2xvc2VNb2JpbGUgfSkpOyB9OwoKICAv +KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLSBMYWdlLVN0YXR1cyAoS29wZnplaWxlKSAqLwogIFAucmVuZGVyTGFnZSA9IGZ1bmN0aW9u +ICgpIHsKICAgIHZhciBwaWxsID0gUC4kKCIjbGFnZSIpOyBpZiAoIXBpbGwpIHJldHVybjsKICAg +IHZhciBsID0gKFAuY29udGVudCAmJiBQLmNvbnRlbnQubGFnZSkgfHwgeyB0ZXh0OiAiUmVnZWxi +ZXRyaWViIiwgbGV2ZWw6ICJvayIgfTsKICAgIHBpbGwuY2xhc3NOYW1lID0gImxhZ2UtcGlsbCBo +aWRlLXNtIiArIChsLmxldmVsID09PSAiYWxlcnQiID8gIiBhbGVydCIgOiAiIikgKyAoUC5saXZl +ID8gIiBlZGl0YWJsZSIgOiAiIik7CiAgICBwaWxsLnRpdGxlID0gUC5saXZlID8gIkxhZ2Ugw6Ru +ZGVybiAoa2xpY2tlbikiIDogIiI7CiAgICBwaWxsLmlubmVySFRNTCA9ICc8c3BhbiBjbGFzcz0i +ZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImxibC1rIj48L3NwYW4+PHNwYW4gY2xhc3M9ImxhZ2Ut +dHh0Ij48L3NwYW4+JzsKICAgIFAuJCgiLmxibC1rIiwgcGlsbCkudGV4dENvbnRlbnQgPSBQLnQo +ImxhZ2UubGFiZWwiKTsKICAgIFAuJCgiLmxhZ2UtdHh0IiwgcGlsbCkudGV4dENvbnRlbnQgPSBs +LnRleHQ7CiAgfTsKICBmdW5jdGlvbiBzZXRMYWdlKHRleHQsIGxldmVsKSB7CiAgICB0ZXh0ID0g +KHRleHQgfHwgIiIpLnRyaW0oKSB8fCAiUmVnZWxiZXRyaWViIjsKICAgIGlmIChsZXZlbCAhPT0g +Im9rIiAmJiBsZXZlbCAhPT0gImFsZXJ0IikgbGV2ZWwgPSAvXnJlZ2VsYmV0cmllYiQvaS50ZXN0 +KHRleHQpID8gIm9rIiA6ICJhbGVydCI7CiAgICBQLmNvbnRlbnQubGFnZSA9IHsgdGV4dDogdGV4 +dCwgbGV2ZWw6IGxldmVsIH07CiAgICBQLnBlcnNpc3QoKTsgUC5yZW5kZXJMYWdlKCk7CiAgICBQ +LnRvYXN0KFAubGl2ZSA/ICJMYWdlIGdlc2V0enQgJiB2ZXLDtmZmZW50bGljaHQ6ICIgKyB0ZXh0 +IDogIkxhZ2UgZ2VzZXR6dDogIiArIHRleHQpOwogIH0KICAvLyBMYWdlIHNldHplbiB1ZWJlciBl +aW5lbiBWb3JsYWdlbi1QaWNrZXIgKFByZXNldHMgYXVzIGRlbiBTZXR0aW5ncykgKyBGcmVpdGV4 +dC4KICBQLmVkaXRMYWdlID0gZnVuY3Rpb24gKCkgewogICAgaWYgKCFQLmxpdmUpIHJldHVybjsK +ICAgIHZhciBlbCA9IFAuZWw7CiAgICB2YXIgY3VyID0gKFAuY29udGVudC5sYWdlICYmIFAuY29u +dGVudC5sYWdlLnRleHQpIHx8ICJSZWdlbGJldHJpZWIiOwogICAgdmFyIHByZXNldHMgPSAoUC5j +b250ZW50LnNldHRpbmdzICYmIFAuY29udGVudC5zZXR0aW5ncy5sYWdlUHJlc2V0cykgfHwgW107 +CiAgICB2YXIgaW5wOwogICAgdmFyIG0gPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJMYWdlIHNl +dHplbiIsIGljb246ICJhbGVydCIsIHNpemU6ICJzbSIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uICho +b3N0KSB7CiAgICAgICAgdmFyIGJvZHkgPSBlbCgiZGl2IiwgeyBjbGFzczogImxhZ2UtcGljayIg +fSk7CiAgICAgICAgaWYgKHByZXNldHMubGVuZ3RoKSB7CiAgICAgICAgICBib2R5LmFwcGVuZENo +aWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiY29sbGFiLXNlYy1oIiwgdGV4dDogIlZvcmxhZ2VuIiB9 +KSk7CiAgICAgICAgICB2YXIgY2hpcHMgPSBlbCgiZGl2IiwgeyBjbGFzczogImxhZ2UtY2hpcHMi +IH0pOwogICAgICAgICAgcHJlc2V0cy5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7CiAgICAgICAgICAg +IGNoaXBzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibGFnZS1jaGlwICIgKyAo +cC5sZXZlbCA9PT0gImFsZXJ0IiA/ICJhbGVydCIgOiAib2siKSwgdGV4dDogcC50ZXh0LAogICAg +ICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgbS5jbG9zZSgpOyBzZXRMYWdlKHAudGV4 +dCwgcC5sZXZlbCk7IH0gfSkpOwogICAgICAgICAgfSk7CiAgICAgICAgICBib2R5LmFwcGVuZENo +aWxkKGNoaXBzKTsKICAgICAgICB9CiAgICAgICAgYm9keS5hcHBlbmRDaGlsZChlbCgiZGl2Iiwg +eyBjbGFzczogImNvbGxhYi1zZWMtaCIsIHRleHQ6ICJGcmVpdGV4dCIgfSkpOwogICAgICAgIGlu +cCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogImxhZ2UtZnJlZSIsIHZhbHVl +OiBjdXIsICJhcmlhLWxhYmVsIjogIkxhZ2UtVGV4dCIgfSk7CiAgICAgICAgYm9keS5hcHBlbmRD +aGlsZChpbnApOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoYm9keSk7CiAgICAgIH0sCiAgICAg +IGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDogImdob3N0IiB9 +LAogICAgICAgIHsgbGFiZWw6ICJTZXR6ZW4iLCBraW5kOiAicHJpbWFyeSIsIG9uQ2xpY2s6IGZ1 +bmN0aW9uICgpIHsgc2V0TGFnZShpbnAudmFsdWUpOyB9IH0KICAgICAgXSwKICAgICAgb25PcGVu +OiBmdW5jdGlvbiAoKSB7IGlmIChpbnApIHsgdHJ5IHsgaW5wLmZvY3VzKCk7IGlucC5zZWxlY3Qo +KTsgfSBjYXRjaCAoZSkge30gfSB9CiAgICB9KTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZW5kZXItT3JjaGVz +dHJpZXJ1bmcgKi8KICBQLnJlbmRlckFsbCA9IGZ1bmN0aW9uICgpIHsgUC5yZW5kZXJMYWdlKCk7 +IFAucmVuZGVyU2lkZWJhcigpOyBQLnJlbmRlckZlZWQoKTsgUC5yZW5kZXJQYW5lbHMoKTsgaWYg +KFAudXBkYXRlQmFubmVyKSBQLnVwZGF0ZUJhbm5lcigpOyBQLmVtaXQoInJlbmRlcmVkIik7IH07 +Cgp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/core/datapflege.js | 3528 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZGF0YXBmbGVnZS5qcwogICBFZGl0 +LU1vZHVzLCBWZXLDtmZmZW50bGljaGVuIChkYXRhLWNvbnRlbnQuanMgKyBkYXRhLW5hdi5qcyks +IEltcG9ydCwKICAgRW50d3VyZiB2ZXJ3ZXJmZW4uICBQdWJsaXNoLURhdGVpLU1vZGVsbCBlcnNl +dHp0IFNlcnZlci9EQi4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ug +c3RyaWN0IjsKICB2YXIgJCA9IFAuJDsKCiAgUC50b2dnbGVFZGl0ID0gZnVuY3Rpb24gKCkgewog +ICAgdmFyIG9uID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJlZGl0aW5nIik7CiAg +ICAkKCIjZWRpdC10b2dnbGUiKS5jbGFzc0xpc3QudG9nZ2xlKCJhcm1lZCIsIG9uKTsKICAgIFAu +dXBkYXRlQmFubmVyKCk7CiAgICBpZiAob24gJiYgISQoIi5jZW50ZXIiKS5jbGFzc0xpc3QuY29u +dGFpbnMoImRvYyIpKSBQLnRvYXN0KCJEYXRlbnBmbGVnZSBha3RpdiDigJQgTWVsZHVuZ2VuLCBB +cnRpa2VsICYgTGlua3MgYmVhcmJlaXRiYXIuIik7CiAgfTsKICBQLnVwZGF0ZUJhbm5lciA9IGZ1 +bmN0aW9uICgpIHsKICAgIHZhciBkaSA9ICQoIiNkcmFmdC1pbmZvIik7IGlmICghZGkpIHJldHVy +bjsKICAgIHZhciBwdWIgPSAkKCIjYnRuLXB1Ymxpc2giKTsKICAgIGlmIChQLmxpdmUpIHsKICAg +ICAgdmFyIG1hcCA9IHsKICAgICAgICBpZGxlOiAgICJCZXJlaXQg4oCUIGplZGUgw4RuZGVydW5n +IHdpcmQgc29mb3J0IGbDvHIgYWxsZSB2ZXLDtmZmZW50bGljaHQuIiwKICAgICAgICBzYXZpbmc6 +ICJTcGVpY2hlcmUgYXVmIGRpZSBGcmVpZ2FiZeKApiIsCiAgICAgICAgb2s6ICAgICAiR2VzcGVp +Y2hlcnQgJiB2ZXLDtmZmZW50bGljaHQg4oCUIGFsbGUgc2VoZW4gZXMgYmVpbSBuw6RjaHN0ZW4g +TGFkZW4uIiwKICAgICAgICBlcnJvcjogICJGRUhMRVIgYmVpbSBTY2hyZWliZW4gYXVmIGRpZSBG +cmVpZ2FiZSDigJQgw4RuZGVydW5nIGlzdCBudXIgbG9rYWwhIgogICAgICB9OwogICAgICB2YXIg +cmwgPSB7IHJlYWRlcjogIkxlc2VyIiwgcmVkYWt0ZXVyOiAiUmVkYWt0ZXVyIiwgYWRtaW46ICJB +ZG1pbiIgfVtQLnJvbGVdIHx8IFAucm9sZTsKICAgICAgdmFyIHdobyA9IFAudXNlck5hbWUgfHwg +UC51c2VyOwogICAgICBkaS50ZXh0Q29udGVudCA9ICh3aG8gPyAoIkFuZ2VtZWxkZXQ6ICIgKyB3 +aG8gKyAiICgiICsgcmwgKyAiKSAgwrcgICIpIDogIiIpICsgKG1hcFtQLnB1YlN0YXRlXSB8fCBt +YXAuaWRsZSk7CiAgICAgIGlmIChwdWIpIHB1Yi5jbGFzc0xpc3QudG9nZ2xlKCJob3QiLCBQLnB1 +YlN0YXRlID09PSAiZXJyb3IiKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGJpdHMgPSBb +XTsKICAgIGlmIChQLmhhc0RyYWZ0KSBiaXRzLnB1c2goIkluaGFsdHMtRW50d3VyZiIpOwogICAg +aWYgKFAuaGFzTmF2RHJhZnQpIGJpdHMucHVzaCgiTmF2aWdhdGlvbnMtRW50d3VyZiIpOwogICAg +ZGkudGV4dENvbnRlbnQgPSBiaXRzLmxlbmd0aCA/ICgiTG9rYWxlciBFbnR3dXJmICgiICsgYml0 +cy5qb2luKCIgKyAiKSArICIpIOKAlCBub2NoIG5pY2h0IHZlcsO2ZmZlbnRsaWNodC4iKSA6ICJL +ZWluZSBsb2thbGVuIMOEbmRlcnVuZ2VuLiI7CiAgICBpZiAocHViKSBwdWIuY2xhc3NMaXN0LnRv +Z2dsZSgiaG90IiwgUC5oYXNEcmFmdCB8fCBQLmhhc05hdkRyYWZ0KTsKICB9OwoKICAvLyBTaWNo +ZXJlIEVpbmJldHR1bmcgaW4gPHNjcmlwdD4tQmxvZWNrZTogemVudHJhbGUgUXVlbGxlIFAuanNT +YWZlIChjb3JlLmpzKS4KICB2YXIganNTYWZlID0gUC5qc1NhZmU7CgogIC8vIERhdGVpLUluaGFs +dGUgZXJ6ZXVnZW4g4oCUIGlkZW50aXNjaGVzIEZvcm1hdCB3aWUgZGF0YS1jb250ZW50LmpzL2Rh +dGEtbmF2LmpzLgogIFAuYnVpbGRDb250ZW50RmlsZSA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBv +dXQgPSBQLmNsb25lKFAuY29udGVudCk7CiAgICB2YXIgcmV2ID0gUC5jb250ZW50UmV2ID0gUC5u +ZXh0UmV2KFAuY29udGVudFJldik7ICAgLy8gVmVyc2lvbnMtU3RlbXBlbCBob2NoemFlaGxlbgog +ICAgcmV0dXJuIGpzU2FmZSgiLyogUE9SVEFMIFVOSU9OIOKAlCBkYXRhLWNvbnRlbnQuanMgwrcg +dmVyw7ZmZmVudGxpY2h0ICIgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCJkZS1ERSIpICsg +IiAqL1xuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0JVTExFVElOUyA9ICIgKyBKU09OLnN0cmlu +Z2lmeShvdXQuYnVsbGV0aW5zLCBudWxsLCAyKSArICI7XG5cbiIgKwogICAgICAid2luZG93LlBP +UlRBTF9QQU5FTFMgPSAiICsgSlNPTi5zdHJpbmdpZnkob3V0LnBhbmVscywgbnVsbCwgMikgKyAi +O1xuXG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxfUk9TVEVSID0gIiArIEpTT04uc3RyaW5naWZ5 +KG91dC5yb3N0ZXIsIG51bGwsIDIpICsgIjtcblxuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0xJ +TktDT0xTID0gIiArIEpTT04uc3RyaW5naWZ5KG91dC5saW5rY29scyB8fCBbXSwgbnVsbCwgMikg +KyAiO1xuXG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxfS0VOTldPRVJURVIgPSAiICsgSlNPTi5z +dHJpbmdpZnkob3V0Lmtlbm53b2VydGVyIHx8IFtdLCBudWxsLCAyKSArICI7XG5cbiIgKwogICAg +ICAid2luZG93LlBPUlRBTF9QUlVFRlVORyA9ICIgKyBKU09OLnN0cmluZ2lmeShvdXQucHJ1ZWZ1 +bmcgfHwgW10sIG51bGwsIDIpICsgIjtcblxuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0xBR0Ug +PSAiICsgSlNPTi5zdHJpbmdpZnkob3V0LmxhZ2UgfHwgeyB0ZXh0OiAiUmVnZWxiZXRyaWViIiwg +bGV2ZWw6ICJvayIgfSwgbnVsbCwgMikgKyAiO1xuXG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxf +U0VUVElOR1MgPSAiICsgSlNPTi5zdHJpbmdpZnkob3V0LnNldHRpbmdzIHx8IFAuZGVmYXVsdFNl +dHRpbmdzKCksIG51bGwsIDIpICsgIjtcblxuIiArCiAgICAgICJ3aW5kb3cuUE9SVEFMX0NPTlRF +TlRfUkVWID0gIiArIEpTT04uc3RyaW5naWZ5KHJldikgKyAiO1xuIik7CiAgfTsKICBQLmJ1aWxk +TmF2RmlsZSA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciByZXYgPSBQLm5hdlJldiA9IFAubmV4dFJl +dihQLm5hdlJldik7ICAgICAgICAgICAgLy8gVmVyc2lvbnMtU3RlbXBlbCBob2NoemFlaGxlbgog +ICAgcmV0dXJuIGpzU2FmZSgiLyogUE9SVEFMIFVOSU9OIOKAlCBkYXRhLW5hdi5qcyDCtyB2ZXLD +tmZmZW50bGljaHQgIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoImRlLURFIikgKyAiICov +XG4iICsKICAgICAgIndpbmRvdy5QT1JUQUxfTkFWID0gIiArIEpTT04uc3RyaW5naWZ5KFAuTkFW +LCBudWxsLCAyKSArICI7XG5cbiIgKwogICAgICAid2luZG93LlBPUlRBTF9OQVZfUkVWID0gIiAr +IEpTT04uc3RyaW5naWZ5KHJldikgKyAiO1xuIik7CiAgfTsKCn0pKHdpbmRvdy5QKTsK +### FILE: assets/js/core/main.js | 9145 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgbWFpbi5qcwogICBJbml0aWFsaXNp +ZXJ1bmc6IGzDpGR0IFN0YXRlLCByZW5kZXJ0IGFsbGVzLCB2ZXJkcmFodGV0IGFsbGUgRXJlaWdu +aXNzZS4KICAgV2lyZCBhbHMgTEVUWlRFUyBTY3JpcHQgZ2VsYWRlbiAobmFjaCBjb3JlICsgYWxs +ZW4gUC4qLU1vZHVsZW4pLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVz +ZSBzdHJpY3QiOwogIHZhciAkID0gUC4kOwoKICAvKiBBZG1pbi1IdWI6IGVpbiBNb2RhbCBtaXQg +S2FjaGVsbiB6dSBkZW4gdmllciBBZG1pbi1XZXJremV1Z2VuIChudXIgQWRtaW4gc2ljaHRiYXIp +LgogICAgIEVyc2V0enQgZGllIHZpZXIgZWluemVsbmVuIFRvcGJhci1LbsO2cGZlOyBydWZ0IGRp +ZXNlbGJlbiBQLm9wZW4qLUZ1bmt0aW9uZW4gYXVmLiAqLwogIFAub3BlbkFkbWluSHViID0gZnVu +Y3Rpb24gKCkgewogICAgdmFyIFRJTEVTID0gWwogICAgICB7IGljOiAiY2xvY2siLCBsYWJlbDog +IlZlcnNpb25lbiAmIFdpZWRlcmhlcnN0ZWxsZW4iLCBkZXNjOiAiRnLDvGhlcmUgU3TDpG5kZSBh +bnNlaGVuIHVuZCB6dXLDvGNraG9sZW4uIiwgZm46IFAub3Blbkhpc3RvcnkgfSwKICAgICAgeyBp +YzogImdyaWQiLCAgbGFiZWw6ICJQb3J0YWwtRWluc3RlbGx1bmdlbiIsICAgICAgICAgZGVzYzog +IkJyYW5kaW5nLCBUaGVtZSwgTWFya2VuZmFyYmUsIERhcnN0ZWxsdW5nLiIsIGZuOiBQLm9wZW5T +ZXR0aW5ncyB9LAogICAgICB7IGljOiAidXNlciIsICBsYWJlbDogIlJlZGFrdGV1cmUgJiBBZG1p +bnMiLCAgICAgICAgICBkZXNjOiAiV2VyIGRhcmYgcGZsZWdlbiwgd2VyIGlzdCBBZG1pbi4iLCBm +bjogUC5vcGVuUm9sZUFkbWluIH0sCiAgICAgIHsgaWM6ICJtZW51IiwgIGxhYmVsOiAiTmF2aWdh +dGlvbiBiZWFyYmVpdGVuIiwgICAgICAgIGRlc2M6ICJTdHJ1a3R1ciBkZXIgbGlua2VuIE5hdmln +YXRpb25zc3BhbHRlLiIsIGZuOiBQLm9wZW5OYXZFZGl0b3IgfSwKICAgICAgeyBpYzogImxpbmsi +LCAgbGFiZWw6ICJMaW5rLVByw7xmdW5nIiwgICAgICAgICAgICAgICAgIGRlc2M6ICJGZWhsZW5k +ZSBEYXRlaS1MaW5rcyBlcmtlbm5lbiAmIGF1Zmxpc3Rlbi4iLCBmbjogUC5vcGVuTGlua1JlcG9y +dCB9CiAgICBdOwogICAgdmFyIG0gPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6ICJBZG1pbi1XZXJr +emV1Z2UiLCBpY29uOiAic2hpZWxkIiwgc2l6ZTogIm1kIiwKICAgICAgYm9keTogZnVuY3Rpb24g +KGhvc3QpIHsKICAgICAgICB2YXIgZ3JpZCA9IFAuZWwoImRpdiIsIHsgY2xhc3M6ICJhZG1pbi1o +dWIiIH0pOwogICAgICAgIFRJTEVTLmZvckVhY2goZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIGdy +aWQuYXBwZW5kQ2hpbGQoUC5lbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJh +ZG1pbi10aWxlIiwKICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBtLmNsb3NlKCk7 +IGlmICh0eXBlb2YgdC5mbiA9PT0gImZ1bmN0aW9uIikgdC5mbigpOyB9IH0sIFsKICAgICAgICAg +ICAgUC5lbCgic3BhbiIsIHsgY2xhc3M6ICJhZG1pbi10aWxlLWljIiwgaHRtbDogUC5pYyh0Lmlj +KSB9KSwKICAgICAgICAgICAgUC5lbCgic3BhbiIsIHsgY2xhc3M6ICJhZG1pbi10aWxlLXR4IiB9 +LCBbCiAgICAgICAgICAgICAgUC5lbCgiYiIsIHsgdGV4dDogdC5sYWJlbCB9KSwKICAgICAgICAg +ICAgICBQLmVsKCJzcGFuIiwgeyBjbGFzczogImFkbWluLXRpbGUtZCIsIHRleHQ6IHQuZGVzYyB9 +KQogICAgICAgICAgICBdKQogICAgICAgICAgXSkpOwogICAgICAgIH0pOwogICAgICAgIGhvc3Qu +YXBwZW5kQ2hpbGQoZ3JpZCk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IFsgeyBsYWJlbDogIlNj +aGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0gXQogICAgfSk7CiAgfTsKCiAgZnVuY3Rpb24gaW5p +dCgpIHsKICAgIFAubG9hZFN0YXRlKCk7CiAgICBpZiAoUC5uYXZFbnN1cmVJZHMpIFAubmF2RW5z +dXJlSWRzKCk7ICAgLy8gc3RhYmlsZSBJRHMgZnVlciBpbnRlcm5lIExpbmtzIC8gTWVocmZhY2gt +RWluYmluZHVuZyAoUGhhc2UgOCkKICAgIGlmIChQLnNuYXBzaG90VGV4dHMpIFAuc25hcHNob3RU +ZXh0cygpOyAgIC8vIERlZmF1bHQtVGV4dGUgKGRhdGEtdGtleSkgZXJmYXNzZW4sIEJFVk9SIE92 +ZXJyaWRlcyBhbmdld2FuZHQgd2VyZGVuIChQaGFzZSAxMykKICAgIFAuYXBwbHlTZXR0aW5ncygp +OyAgICAgICAgLy8gQnJhbmRpbmcgKFRpdGVsL05hbWUvRHJ1Y2tmdXNzKSBhdXMgUE9SVEFMX1NF +VFRJTkdTIGFud2VuZGVuCiAgICBQLmluaXRUaGVtZSgpOwogICAgUC5pbml0TG9nbygpOwogICAg +UC5hcHBseUNvbGxhcHNlKCk7CiAgICBQLmJ1aWxkSW5kZXgoKTsKICAgIFAucmVuZGVyQWxsKCk7 +CiAgICBpZiAoUC5pbml0SW50ZXJuYWxMaW5rcykgUC5pbml0SW50ZXJuYWxMaW5rcygpOyAgIC8v +IGludGVybmUgcG9ydGFsOi1MaW5rcyBhYmZhbmdlbiAoUGhhc2UgOSkKCiAgICAvKiBHbG9iYWxl +IFN1Y2hlICovCiAgICB2YXIgaW5wID0gJCgiI3NlYXJjaC1pbnB1dCIpOwogICAgaW5wLmFkZEV2 +ZW50TGlzdGVuZXIoImlucHV0IiwgZnVuY3Rpb24gKCkgeyBQLnJlbmRlclJlc3VsdHMoaW5wLnZh +bHVlKTsgfSk7CiAgICBpbnAuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGZ1bmN0aW9uIChl +KSB7CiAgICAgIGlmIChlLmtleSA9PT0gIkFycm93RG93biIpIHsgZS5wcmV2ZW50RGVmYXVsdCgp +OyBQLm1vdmVTZWwoMSk7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICJBcnJvd1VwIikgeyBl +LnByZXZlbnREZWZhdWx0KCk7IFAubW92ZVNlbCgtMSk7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkg +PT09ICJFbnRlciIpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBQLmFjdGl2YXRlU2VsKCk7IH0KICAg +ICAgZWxzZSBpZiAoZS5rZXkgPT09ICJFc2NhcGUiKSB7IFAuY2xlYXJTZWFyY2goKTsgaW5wLmJs +dXIoKTsgfQogICAgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwg +ZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIHRhZyA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFn +TmFtZSwgZWRpdGFibGUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlzQ29udGVudEVkaXRhYmxl +OwogICAgICBpZiAoKChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSAmJiBlLmtleS50b0xvd2VyQ2Fz +ZSgpID09PSAiayIpIHx8CiAgICAgICAgICAoZS5rZXkgPT09ICIvIiAmJiAhZWRpdGFibGUgJiYg +IS9JTlBVVHxURVhUQVJFQS8udGVzdCh0YWcpKSkgeyBlLnByZXZlbnREZWZhdWx0KCk7IGlucC5m +b2N1cygpOyBpbnAuc2VsZWN0KCk7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICJFc2NhcGUi +KSB7IFAuY2xlYXJTZWFyY2goKTsgUC5jbG9zZUFaKCk7IH0KICAgIH0pOwogICAgZG9jdW1lbnQu +YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoZSkgeyBpZiAoIWUudGFyZ2V0LmNs +b3Nlc3QoIi5zZWFyY2giKSkgJCgiI2NtZC1yZXN1bHRzIikuaGlkZGVuID0gdHJ1ZTsgfSk7Cgog +ICAgLyogRmVlZCAqLwogICAgJCgiI2ZlZWQtYWRkIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si +LCBmdW5jdGlvbiAoKSB7IFAub3BlbkJ1bGxldGluRGxnKG51bGwpOyB9KTsKCiAgICAvKiBUb3Bi +YXIgKi8KICAgICQoIiN0aGVtZS10b2dnbGUiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIFAu +dG9nZ2xlVGhlbWUpOwogICAgdmFyIGF6QnRuID0gJCgiI2F6LWJ0biIpOyBpZiAoYXpCdG4pIGF6 +QnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgUC5vcGVuQVopOyAgIC8vIGFsdGVyIEtub3Bm +IG9wdGlvbmFsIChkdXJjaCBSZWdpc3RlcmxlaXN0ZSBlcnNldHp0KQogICAgJCgiI2VkaXQtdG9n +Z2xlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBQLnRvZ2dsZUVkaXQpOwogICAgJCgiI2Nv +bGxhcHNlLWwiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgUC50b2dn +bGVDb2xsYXBzZSgibCIpOyB9KTsKICAgICQoIiNjb2xsYXBzZS1yIikuYWRkRXZlbnRMaXN0ZW5l +cigiY2xpY2siLCBmdW5jdGlvbiAoKSB7IFAudG9nZ2xlQ29sbGFwc2UoInIiKTsgfSk7CiAgICAk +KCIjbWVudS1sIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7IFAub3Bl +blJhaWwoIi5yYWlsLWwiKTsgfSk7CiAgICAkKCIjbWVudS1yIikuYWRkRXZlbnRMaXN0ZW5lcigi +Y2xpY2siLCBmdW5jdGlvbiAoKSB7IFAub3BlblJhaWwoIi5yYWlsLXIiKTsgfSk7CgogICAgLyog +QeKAk1ogKi8KICAgICQoIiNhei1jbG9zZSIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgUC5j +bG9zZUFaKTsKICAgICQoIiNhei1iZyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgUC5jbG9z +ZUFaKTsKCiAgICAvKiBBZG1pbi1XZXJremV1Z2UgZ2Viw7xuZGVsdCAobnVyIEFkbWluIHNpY2h0 +YmFyKTogZWluIEh1Yi1Lbm9wZiDDtmZmbmV0IGRhcyBLYWNoZWwtTW9kYWwuICovCiAgICB2YXIg +YWggPSAkKCIjYWRtaW4taHViLWJ0biIpOyBpZiAoYWgpIGFoLmFkZEV2ZW50TGlzdGVuZXIoImNs +aWNrIiwgZnVuY3Rpb24gKCkgeyBpZiAoUC5vcGVuQWRtaW5IdWIpIFAub3BlbkFkbWluSHViKCk7 +IH0pOwoKICAgIC8qIERva3VtZW50LS9BcnRpa2VsYW5zaWNodCB6dXLDvGNrICsgQXJ0aWtlbCBi +ZWFyYmVpdGVuICovCiAgICAkKCIjY3YtYmFjayIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg +UC5jbG9zZURvYyk7CiAgICAkKCIjY3YtZWRpdCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg +ZnVuY3Rpb24gKCkgeyBpZiAoUC5jdXJBcnRpY2xlKSBQLm9wZW5BcnRpY2xlRGxnKFAuY3VyQXJ0 +aWNsZSk7IH0pOwogICAgdmFyIHBiID0gJCgiI2N2LXBkZiIpOyBpZiAocGIpIHBiLmFkZEV2ZW50 +TGlzdGVuZXIoImNsaWNrIiwgUC5jb3B5QXJ0aWNsZSk7ICAgLy8gRWluLUtsaWNrOiBJbmhhbHQr +QmlsZGVyIGtvcGllcmVuCgogICAgLyogTGFnZS1TdGF0dXMgKG51ciBSZWRha3RldXIpIOKAlCBQ +aWxsIG9wdGlvbmFsIChrYW5uIGF1c2dlYmxlbmRldCBzZWluKSAqLwogICAgdmFyIGxhZ2VFbCA9 +ICQoIiNsYWdlIik7IGlmIChsYWdlRWwpIGxhZ2VFbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs +IGZ1bmN0aW9uICgpIHsgaWYgKFAuZWRpdExhZ2UpIFAuZWRpdExhZ2UoKTsgfSk7CgogICAgLyog +QnVsbGV0aW4tRGlhbG9nICovCiAgICAkKCIjYmYtcGluIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xp +Y2siLCBQLnRvZ2dsZURsZ1Bpbik7CiAgICAkKCIjYmQtc2F2ZSIpLmFkZEV2ZW50TGlzdGVuZXIo +ImNsaWNrIiwgUC5zYXZlQnVsbGV0aW4pOwogICAgJCgiI2JkLWNhbmNlbCIpLmFkZEV2ZW50TGlz +dGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyAkKCIjYnVsbC1kbGciKS5jbG9zZSgpOyB9KTsK +ICAgICQoIiNiZC14IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7ICQo +IiNidWxsLWRsZyIpLmNsb3NlKCk7IH0pOwogICAgJCgiI2JmLWRlbCIpLmFkZEV2ZW50TGlzdGVu +ZXIoImNsaWNrIiwgUC5kZWxldGVCdWxsZXRpbik7CiAgICAkKCIjYnVsbC1kbGciKS5hZGRFdmVu +dExpc3RlbmVyKCJjYW5jZWwiLCBmdW5jdGlvbiAoZSkgeyBlLnByZXZlbnREZWZhdWx0KCk7ICQo +IiNidWxsLWRsZyIpLmNsb3NlKCk7IH0pOwoKICAgIC8qIEFydGlrZWwtRGlhbG9nICovCiAgICAk +KCIjYXJ0LWFkZCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBQLm9w +ZW5BcnRpY2xlRGxnKG51bGwpOyB9KTsKICAgICQoIiNhcnQtc2VjdGlvbiIpLmFkZEV2ZW50TGlz +dGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgZmlsbFBhcmVudE9uQ2hhbmdlKCk7IH0pOwog +ICAgJCgiI2FydC1zYXZlIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBQLnNhdmVBcnRpY2xl +KTsKICAgICQoIiNhcnQtY2FuY2VsIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlv +biAoKSB7ICQoIiNhcnQtZGxnIikuY2xvc2UoKTsgfSk7CiAgICAkKCIjYWQteCIpLmFkZEV2ZW50 +TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyAkKCIjYXJ0LWRsZyIpLmNsb3NlKCk7IH0p +OwogICAgJCgiI2FydC1kZWwiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIFAuZGVsZXRlQXJ0 +aWNsZSk7CiAgICAkKCIjYXJ0LWRsZyIpLmFkZEV2ZW50TGlzdGVuZXIoImNhbmNlbCIsIGZ1bmN0 +aW9uIChlKSB7IGUucHJldmVudERlZmF1bHQoKTsgJCgiI2FydC1kbGciKS5jbG9zZSgpOyB9KTsK +ICAgIC8vIFN0cmcrQi9JIGltIFdZU0lXWUcgbGF1ZmVuIG5hdGl2IMO8YmVyIGNvbnRlbnRlZGl0 +YWJsZQoKICAgIC8qIEVtYmVkcyAoQmlsZC9QREYpIC0+IExpZ2h0Ym94LCBhdWNoIGluIGRlciBM +ZXNlYW5zaWNodCAqLwogICAgUC5pbml0RW1iZWRzKCk7CgogICAgLyogUmVkYWt0ZXVyLSB2cy4g +TGVzZXItTW9kdXMgYmVzdGltbWVuICovCiAgICBkZXRlY3RNb2RlKCk7CgogICAgLyogQmVzdWNo +IG1lcmtlbiAoTkVVLUJhZGdlcykgKi8KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBQLndy +aXRlKFAuTFMudmlzaXQsIERhdGUubm93KCkpOyB9LCAxNTAwKTsKICB9CiAgZnVuY3Rpb24gZmls +bFBhcmVudE9uQ2hhbmdlKCkgeyBpZiAoUC5fZmlsbFBhcmVudCkgUC5fZmlsbFBhcmVudCgpOyB9 +CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIFNjaHJlaWJyZWNodGUgbnVyIHVlYmVyIGRlbiBQb3dl +clNoZWxsLVBmbGVnZS1IZWxmZXIgKGh0dHA6Ly8xMjcuMC4wLjEpLgogICAgIExlc2VyIG9lZmZu +ZW4gZGFzIFBvcnRhbCBkaXJla3QgcGVyIGZpbGU6Ly8gLT4gbnVyIGxlc2VuLCBrZWluZSBQZmxl +Z2UtVUkuCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAgdmFyIFJPTEVfTEFCRUwgPSB7IHJlYWRlcjog +Ikxlc2VyIiwgcmVkYWt0ZXVyOiAiUmVkYWt0ZXVyIiwgYWRtaW46ICJBZG1pbiIgfTsKICBmdW5j +dGlvbiBhcHBseVJvbGVDbGFzcyhyb2xlKSB7CiAgICB2YXIgYiA9IGRvY3VtZW50LmJvZHk7CiAg +ICBiLmNsYXNzTGlzdC5yZW1vdmUoInJvbGUtcmVhZGVyIiwgInJvbGUtcmVkYWt0ZXVyIiwgInJv +bGUtYWRtaW4iKTsKICAgIGIuY2xhc3NMaXN0LmFkZCgicm9sZS0iICsgcm9sZSk7CiAgfQogIGZ1 +bmN0aW9uIHNldFJlYWRlcigpIHsKICAgIFAucm9sZSA9ICJyZWFkZXIiOyBQLmxpdmUgPSBmYWxz +ZTsgUC51c2VyID0gbnVsbDsgUC51c2VyTmFtZSA9IG51bGw7CiAgICBkb2N1bWVudC5ib2R5LmNs +YXNzTGlzdC5hZGQoInJlYWRlciIpOwogICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3Zl +KCJlZGl0aW5nIik7CiAgICBhcHBseVJvbGVDbGFzcygicmVhZGVyIik7CiAgICB2YXIgZXQgPSAk +KCIjZWRpdC10b2dnbGUiKTsgaWYgKGV0KSBldC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAg +dmFyIGZhID0gJCgiI2ZlZWQtYWRkIik7IGlmIChmYSkgZmEuc3R5bGUuZGlzcGxheSA9ICJub25l +IjsKICB9CiAgLy8gcm9sZSA9ICJyZWRha3RldXIiIHwgImFkbWluIjsgdXNlciA9ICVVU0VSTkFN +RSUsIG5hbWUgPSBBbnplaWdlbmFtZQogIGZ1bmN0aW9uIHNldEVkaXRvcihyb2xlLCB1c2VyLCBu +YW1lKSB7CiAgICBQLnJvbGUgPSByb2xlOyBQLmxpdmUgPSB0cnVlOyBQLnVzZXIgPSB1c2VyIHx8 +IG51bGw7IFAudXNlck5hbWUgPSBuYW1lIHx8IG51bGw7CiAgICBkb2N1bWVudC5ib2R5LmNsYXNz +TGlzdC5yZW1vdmUoInJlYWRlciIpOwogICAgYXBwbHlSb2xlQ2xhc3Mocm9sZSk7CiAgICB2YXIg +d2hvID0gUC51c2VyTmFtZSB8fCBQLnVzZXIgfHwgIiI7CiAgICB2YXIgZXQgPSAkKCIjZWRpdC10 +b2dnbGUiKTsgaWYgKGV0KSB7IGV0LnN0eWxlLmRpc3BsYXkgPSAiIjsgZXQudGl0bGUgPSAiRGF0 +ZW5wZmxlZ2UiICsgKHdobyA/ICIgKCIgKyB3aG8gKyAiIMK3ICIgKyBST0xFX0xBQkVMW3JvbGVd +ICsgIikiIDogIiIpOyB9CiAgICB2YXIgZmEgPSAkKCIjZmVlZC1hZGQiKTsgaWYgKGZhKSBmYS5z +dHlsZS5kaXNwbGF5ID0gIiI7CiAgICBpZiAoUC5sb2FkRWRpdG9yKSBQLmxvYWRFZGl0b3IoKTsg +ICAgICAgLy8gVGlueU1DRSBpbSBIaW50ZXJncnVuZCB2b3JsYWRlbgogICAgaWYgKFAudXBkYXRl +QmFubmVyKSBQLnVwZGF0ZUJhbm5lcigpOwogICAgaWYgKFAuaW5pdENvbGxhYikgUC5pbml0Q29s +bGFiKCk7ICAgICAgIC8vIEF1dG9zYXZlL1ByYWVzZW56L0tvbmZsaWt0IChQaGFzZSA0KQogICAg +UC50b2FzdCgiUGZsZWdlLU1vZHVzIGFrdGl2IiArICh3aG8gPyAiIOKAlCAiICsgd2hvIDogIiIp +ICsgIiAoIiArIFJPTEVfTEFCRUxbcm9sZV0gKyAiKS4gw4RuZGVydW5nZW4gc2luZCBzb2ZvcnQg +ZsO8ciBhbGxlIHNpY2h0YmFyLiIpOwogIH0KICBmdW5jdGlvbiBkZXRlY3RNb2RlKCkgewogICAg +c2V0UmVhZGVyKCk7ICAgLy8gU3RhbmRhcmQ6IG51ciBsZXNlbgogICAgdmFyIGxvY2FsID0gbG9j +YXRpb24ucHJvdG9jb2wgPT09ICJodHRwOiIgJiYgL14oMTI3XC4wXC4wXC4xfGxvY2FsaG9zdCkk +Ly50ZXN0KGxvY2F0aW9uLmhvc3RuYW1lKTsKICAgIGlmICghbG9jYWwpIHJldHVybjsKICAgIGZl +dGNoKCIvYXBpL3BpbmciKS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkK +ICAgICAgLnRoZW4oZnVuY3Rpb24gKGopIHsgaWYgKGogJiYgai5vayAmJiBqLnJvbGUgJiYgai5y +b2xlICE9PSAicmVhZGVyIikgc2V0RWRpdG9yKGoucm9sZSwgai51c2VyLCBqLm5hbWUpOyB9KQog +ICAgICAuY2F0Y2goZnVuY3Rpb24gKCkgeyAvKiBrZWluIEhlbGZlciBlcnJlaWNoYmFyIC0+IExl +c2VyICovIH0pOwogIH0KCiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJsb2FkaW5nIikg +ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGluaXQpOwogIGVs +c2UgaW5pdCgpOwp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/core/modal.js | 6320 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgY29yZS9tb2RhbC5qcwogICBFaW5l +IGVpbmhlaXRsaWNoZSBNb2RhbC1Lb21wb25lbnRlIGF1ZiBIVE1MNS08ZGlhbG9nPi1CYXNpcy4g +TG9lc3QgZGllCiAgIHp3ZWkgcGFyYWxsZWxlbiBEaWFsb2ctU3lzdGVtZSAoc3RhdGlzY2hlIDxk +aWFsb2cgY2xhc3M9ImRsZyI+ICsKICAgZHluYW1pc2NoZSAuY29sbGFiLW92ZXJsYXkvLmNvbGxh +Yi1kbGcpIHNjaHJpdHR3ZWlzZSBhYi4gTmF0aXZlcgogICBCYWNrZHJvcC9Fc2MvRm9rdXNmYWxs +ZSDihpIgZmlsZTovLy10YXVnbGljaCwga2VpbiBGcmFtZXdvcmsuCgogICBQLm1vZGFsKHsKICAg +ICB0aXRsZSwgaWNvbiwgICAgICAgICAgICAvLyBLb3BmIChpY29uID0gUC5pYy1LZXkpCiAgICAg +Ym9keSwgICAgICAgICAgICAgICAgICAgLy8gRE9NLU5vZGUgT0RFUiAoaG9zdCk9PnZvaWQgQnVp +bGRlcgogICAgIGFjdGlvbnMsICAgICAgICAgICAgICAgIC8vIFt7bGFiZWwsIGtpbmQ6InByaW1h +cnkifCJnaG9zdCJ8ImRhbmdlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBp +Y29uPywgb25DbGljayhhcGkpLT5mYWxzZSBow6RsdCBvZmZlbiwga2VlcE9wZW4sIGFsaWduOiJs +ZWZ0In1dCiAgICAgc2l6ZSwgICAgICAgICAgICAgICAgICAgLy8gInNtInwibWQifCJsZyJ8Inhs +IiAgKERlZmF1bHQgbWQpCiAgICAgb25PcGVuKGFwaSksIG9uQ2xvc2UoKSwKICAgICBkaXNtaXNz +YWJsZSAgICAgICAgICAgICAvLyBCYWNrZHJvcC9Fc2Mgc2NobGllw590IChEZWZhdWx0IHRydWUp +CiAgIH0pIC0+IHsgZWwsIGJvZHksIGNsb3NlKCksIHNldFRpdGxlKHQpIH0KCiAgIEzDpGR0IG5h +Y2ggY29yZS5qcywgdm9yIG5hdi5qcyAoYWxsZSBNb2R1bGUgZMO8cmZlbiBQLm1vZGFsIG51dHpl +bikuCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAg +dmFyIGVsID0gUC5lbCwgaWMgPSBQLmljOwoKICBQLm1vZGFsID0gZnVuY3Rpb24gKG9wdHMpIHsK +ICAgIG9wdHMgPSBvcHRzIHx8IHt9OwogICAgdmFyIGRsZyA9IGVsKCJkaWFsb2ciLCB7IGNsYXNz +OiAibW9kYWwgbW9kYWwtIiArIChvcHRzLnNpemUgfHwgIm1kIikgfSk7CiAgICB2YXIgY2FyZCA9 +IGVsKCJkaXYiLCB7IGNsYXNzOiAibW9kYWwtY2FyZCIgfSk7CgogICAgdmFyIGFwaSA9IHsKICAg +ICAgZWw6IGRsZywKICAgICAgY2xvc2U6IGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoYXBpLl9j +bG9zZWQpIHJldHVybjsgYXBpLl9jbG9zZWQgPSB0cnVlOwogICAgICAgIGlmIChvcHRzLm9uQ2xv +c2UpIHsgdHJ5IHsgb3B0cy5vbkNsb3NlKCk7IH0gY2F0Y2ggKGUpIHt9IH0KICAgICAgICB0cnkg +eyBpZiAoZGxnLm9wZW4pIGRsZy5jbG9zZSgpOyB9IGNhdGNoIChlKSB7fQogICAgICAgIGlmIChk +bGcucGFyZW50Tm9kZSkgZGxnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGxnKTsKICAgICAgfSwK +ICAgICAgc2V0VGl0bGU6IGZ1bmN0aW9uICh0KSB7IHRpdGxlRWwudGV4dENvbnRlbnQgPSB0IHx8 +ICIiOyB9CiAgICB9OwoKICAgIC8qIEtvcGY6IEljb24gwrcgVGl0ZWwgwrcgU2NobGllw59lbiAq +LwogICAgdmFyIGhlYWQgPSBlbCgiZGl2IiwgeyBjbGFzczogIm1vZGFsLWhlYWQiIH0pOwogICAg +aWYgKG9wdHMuaWNvbikgaGVhZC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJtb2Rh +bC1pY28iLCBodG1sOiBpYyhvcHRzLmljb24pIH0pKTsKICAgIHZhciB0aXRsZUVsID0gZWwoImgy +IiwgeyBjbGFzczogIm1vZGFsLXRpdGxlIiwgdGV4dDogb3B0cy50aXRsZSB8fCAiIiB9KTsKICAg +IGhlYWQuYXBwZW5kQ2hpbGQodGl0bGVFbCk7CiAgICBoZWFkLmFwcGVuZENoaWxkKGVsKCJidXR0 +b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFzczogIm1vZGFsLXgiLCB0aXRsZTogIlNjaGxpZcOf +ZW4iLCAiYXJpYS1sYWJlbCI6ICJTY2hsaWXDn2VuIiwKICAgICAgaHRtbDogaWMoIngiKSwgb25j +bGljazogZnVuY3Rpb24gKCkgeyBhcGkuY2xvc2UoKTsgfSB9KSk7CiAgICBjYXJkLmFwcGVuZENo +aWxkKGhlYWQpOwoKICAgIC8qIEvDtnJwZXI6IEJ1aWxkZXItRnVua3Rpb24gT0RFUiBmZXJ0aWdl +ciBLbm90ZW4gKi8KICAgIHZhciBib2R5ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJtb2RhbC1ib2R5 +IiB9KTsKICAgIGlmICh0eXBlb2Ygb3B0cy5ib2R5ID09PSAiZnVuY3Rpb24iKSB7IHRyeSB7IG9w +dHMuYm9keShib2R5KTsgfSBjYXRjaCAoZSkge30gfQogICAgZWxzZSBpZiAob3B0cy5ib2R5KSBi +b2R5LmFwcGVuZENoaWxkKG9wdHMuYm9keSk7CiAgICBjYXJkLmFwcGVuZENoaWxkKGJvZHkpOwog +ICAgYXBpLmJvZHkgPSBib2R5OwoKICAgIC8qIEZ1w586IEFrdGlvbmVuIChsaW5rcy1hdXNnZXJp +Y2h0ZXRlIHp1ZXJzdCwgZGFubiBTcGFjZXIsIGRhbm4gcmVjaHRzKSAqLwogICAgaWYgKG9wdHMu +YWN0aW9ucyAmJiBvcHRzLmFjdGlvbnMubGVuZ3RoKSB7CiAgICAgIHZhciBmb290ID0gZWwoImRp +diIsIHsgY2xhc3M6ICJtb2RhbC1mb290IiB9KTsKICAgICAgdmFyIGxlZnRzID0gb3B0cy5hY3Rp +b25zLmZpbHRlcihmdW5jdGlvbiAoYSkgeyByZXR1cm4gYS5hbGlnbiA9PT0gImxlZnQiOyB9KTsK +ICAgICAgdmFyIHJpZ2h0cyA9IG9wdHMuYWN0aW9ucy5maWx0ZXIoZnVuY3Rpb24gKGEpIHsgcmV0 +dXJuIGEuYWxpZ24gIT09ICJsZWZ0IjsgfSk7CiAgICAgIGZ1bmN0aW9uIG1rQnRuKGEpIHsKICAg +ICAgICByZXR1cm4gZWwoImJ1dHRvbiIsIHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAiYnRuICIg +KyAoYS5raW5kIHx8ICJnaG9zdCIpLAogICAgICAgICAgaHRtbDogKGEuaWNvbiA/IGljKGEuaWNv +bikgKyAiICIgOiAiIikgKyBQLmVzY2FwZUh0bWwoYS5sYWJlbCB8fCAiIiksCiAgICAgICAgICBv +bmNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciByID0gYS5vbkNsaWNrID8gYS5v +bkNsaWNrKGFwaSkgOiB1bmRlZmluZWQ7ICAgICAvLyBvbkNsaWNrIGRhcmYgZmFsc2UgbGllZmVy +biDihpIgb2ZmZW4gaGFsdGVuCiAgICAgICAgICAgIGlmICghYS5rZWVwT3BlbiAmJiByICE9PSBm +YWxzZSkgYXBpLmNsb3NlKCk7CiAgICAgICAgICB9IH0pOwogICAgICB9CiAgICAgIGxlZnRzLmZv +ckVhY2goZnVuY3Rpb24gKGEpIHsgZm9vdC5hcHBlbmRDaGlsZChta0J0bihhKSk7IH0pOwogICAg +ICBmb290LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm1vZGFsLXNwYWNlciIgfSkp +OwogICAgICByaWdodHMuZm9yRWFjaChmdW5jdGlvbiAoYSkgeyBmb290LmFwcGVuZENoaWxkKG1r +QnRuKGEpKTsgfSk7CiAgICAgIGNhcmQuYXBwZW5kQ2hpbGQoZm9vdCk7CiAgICB9CgogICAgZGxn +LmFwcGVuZENoaWxkKGNhcmQpOwoKICAgIC8qIEVzYyAoY2FuY2VsLUV2ZW50KSDihpIga29udHJv +bGxpZXJ0IHNjaGxpZcOfZW4gKi8KICAgIGRsZy5hZGRFdmVudExpc3RlbmVyKCJjYW5jZWwiLCBm +dW5jdGlvbiAoZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmIChvcHRzLmRp +c21pc3NhYmxlID09PSBmYWxzZSkgcmV0dXJuOwogICAgICBhcGkuY2xvc2UoKTsKICAgIH0pOwog +ICAgLyogQmFja2Ryb3AtS2xpY2s6IHRyaWZmdCBkaWUgPGRpYWxvZz4gc2VsYnN0IChhdcOfZXJo +YWxiIGRlciAubW9kYWwtY2FyZCkgKi8KICAgIGlmIChvcHRzLmRpc21pc3NhYmxlICE9PSBmYWxz +ZSkgewogICAgICBkbGcuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgZnVuY3Rpb24gKGUp +IHsgYXBpLl9kb3duT25CYWNrZHJvcCA9IChlLnRhcmdldCA9PT0gZGxnKTsgfSk7CiAgICAgIGRs +Zy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uIChlKSB7IGlmIChlLnRhcmdldCA9 +PT0gZGxnICYmIGFwaS5fZG93bk9uQmFja2Ryb3ApIGFwaS5jbG9zZSgpOyB9KTsKICAgIH0KCiAg +ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRsZyk7CiAgICB0cnkgeyBkbGcuc2hvd01vZGFs +KCk7IH0gY2F0Y2ggKGUpIHsgZGxnLnNldEF0dHJpYnV0ZSgib3BlbiIsICIiKTsgfQogICAgaWYg +KG9wdHMub25PcGVuKSB7IHRyeSB7IG9wdHMub25PcGVuKGFwaSk7IH0gY2F0Y2ggKGUpIHt9IH0K +CiAgICAvKiBFcnN0ZXMgc2lubnZvbGxlcyBGZWxkIGZva3Vzc2llcmVuIChuaWNodCBkZW4gU2No +bGllw59lbi1Lbm9wZikgKi8KICAgIHZhciBmaXJzdCA9IGNhcmQucXVlcnlTZWxlY3RvcigiaW5w +dXQ6bm90KFt0eXBlPWhpZGRlbl0pLHRleHRhcmVhLHNlbGVjdCxbY29udGVudGVkaXRhYmxlXSIp +OwogICAgaWYgKGZpcnN0KSB7IHRyeSB7IGZpcnN0LmZvY3VzKCk7IH0gY2F0Y2ggKGUpIHt9IH0K +CiAgICByZXR1cm4gYXBpOwogIH07CgogIC8qIEdlc3R5bHRlcyBCZXN0YWV0aWd1bmdzLU1vZGFs +IChlcnNldHp0IGRhcyBuYXRpdmUgY29uZmlybSgpKS4gTmljaHQgYmxvY2tpZXJlbmQ6CiAgICAg +UC5jb25maXJtKCJXaXJrbGljaCBsb2VzY2hlbj8iLCBmdW5jdGlvbigpeyAuLi5iZWkgT0suLi4g +fSwge2Rhbmdlcjp0cnVlfSkKICAgICBvZGVyIFAuY29uZmlybShtc2csIHsgb25Paywgb25DYW5j +ZWwsIHRpdGxlLCBva0xhYmVsLCBjYW5jZWxMYWJlbCwgZGFuZ2VyIH0pLiAqLwogIGZ1bmN0aW9u +IGJyYW5kTG9nbygpIHsKICAgIHZhciBzID0gUC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5n +cyAmJiBQLmNvbnRlbnQuc2V0dGluZ3MuYnJhbmRpbmc7CiAgICB2YXIgdSA9IHMgJiYgcy5sb2dv +VXJsOwogICAgcmV0dXJuIHUgPyBlbCgiaW1nIiwgeyBjbGFzczogImFzay1sb2dvIiwgc3JjOiB1 +LCBhbHQ6ICIiIH0pIDogbnVsbDsKICB9CiAgUC5jb25maXJtID0gZnVuY3Rpb24gKG1lc3NhZ2Us +IG9uT2tPck9wdHMsIG1heWJlT3B0cykgewogICAgdmFyIG9wdHMgPSAodHlwZW9mIG9uT2tPck9w +dHMgPT09ICJmdW5jdGlvbiIpID8gKG1heWJlT3B0cyB8fCB7fSkgOiAob25Pa09yT3B0cyB8fCB7 +fSk7CiAgICB2YXIgb25PayA9ICh0eXBlb2Ygb25Pa09yT3B0cyA9PT0gImZ1bmN0aW9uIikgPyBv +bk9rT3JPcHRzIDogb3B0cy5vbk9rOwogICAgcmV0dXJuIFAubW9kYWwoewogICAgICB0aXRsZTog +b3B0cy50aXRsZSB8fCAiQml0dGUgYmVzdMOkdGlnZW4iLCBpY29uOiBvcHRzLmRhbmdlciA/ICJh +bGVydCIgOiAiY2hlY2siLCBzaXplOiAic20iLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkg +ewogICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgiYXNrLWJvZHkiKTsKICAgICAgICB2YXIgbGcg +PSBicmFuZExvZ28oKTsgaWYgKGxnKSBob3N0LmFwcGVuZENoaWxkKGxnKTsKICAgICAgICBob3N0 +LmFwcGVuZENoaWxkKGVsKCJwIiwgeyBjbGFzczogImFzay1tc2ciLCB0ZXh0OiBtZXNzYWdlIHx8 +ICIiIH0pKTsKICAgICAgfSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6IG9wdHMu +Y2FuY2VsTGFiZWwgfHwgIkFiYnJlY2hlbiIsIGtpbmQ6ICJnaG9zdCIsIG9uQ2xpY2s6IGZ1bmN0 +aW9uICgpIHsgaWYgKG9wdHMub25DYW5jZWwpIG9wdHMub25DYW5jZWwoKTsgfSB9LAogICAgICAg +IHsgbGFiZWw6IG9wdHMub2tMYWJlbCB8fCAiT0siLCBraW5kOiBvcHRzLmRhbmdlciA/ICJkYW5n +ZXIiIDogInByaW1hcnkiLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChvbk9rKSBvbk9rKCk7 +IH0gfQogICAgICBdCiAgICB9KTsKICB9OwogIFAuYWxlcnQgPSBmdW5jdGlvbiAobWVzc2FnZSwg +b3B0cykgewogICAgb3B0cyA9IG9wdHMgfHwge307CiAgICByZXR1cm4gUC5tb2RhbCh7CiAgICAg +IHRpdGxlOiBvcHRzLnRpdGxlIHx8ICJIaW53ZWlzIiwgaWNvbjogb3B0cy5kYW5nZXIgPyAiYWxl +cnQiIDogImNoZWNrIiwgc2l6ZTogInNtIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsK +ICAgICAgICBob3N0LmNsYXNzTGlzdC5hZGQoImFzay1ib2R5Iik7CiAgICAgICAgdmFyIGxnID0g +YnJhbmRMb2dvKCk7IGlmIChsZykgaG9zdC5hcHBlbmRDaGlsZChsZyk7CiAgICAgICAgaG9zdC5h +cHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJhc2stbXNnIiwgdGV4dDogbWVzc2FnZSB8fCAi +IiB9KSk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IFt7IGxhYmVsOiBvcHRzLm9rTGFiZWwgfHwg +Ik9LIiwga2luZDogInByaW1hcnkiLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChvcHRzLm9u +T2spIG9wdHMub25PaygpOyB9IH1dCiAgICB9KTsKICB9OwoKfSkod2luZG93LlApOwo= +### FILE: assets/js/data-bao.js | 28554 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PQogKiAgUE9SVEFMX0JBTyDigJQgRGVrbGFyYXRpdmVzIE1v +ZGVsbCBkZXMgQkFPLVBvcnRhbHMgKEbDvGhydW5nICYgU3RldWVydW5nLCBGTEQpCiAqICAtLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tCiAqICBRdWVsbGUgPSBkaWUgT3JpZ2luYWwtTGFnZS1TZWl0ZW4gKGA8 +bGFnZT5faW5kZXguaHRtbGApOiBsaW5rZSBTaWRlYmFyCiAqICAoZ3J1cHBpZXJ0ZSBEb2t1bWVu +dGxpc3RlKSArIDMtU3BhbHRlbi1TdGFuZGFyZGFuc2ljaHQgKMOcYmVyc2ljaHQvRXJrbMOkcnVu +ZwogKiAgKyBHcnVuZHPDpHR6ZSArIENoZWNrbGlzdGUvT3JnYW5pZ3JhbW0pLiBWb24gSGFuZCBn +ZXBmbGVndCAoa2VpbmUgR2VuZXJhdG9yZW4pLgogKgogKiAgbGFnZSA9IHsga2V5LCBsYWJlbCwg +Y2F0LCBvdmVydmlldywgZGFzaHtncnVuZHNhZXR6ZSxvcmdhbmlncmFtbX0sIGdyb3Vwc1tdIH0K +ICogICAgb3ZlcnZpZXcgOiBBcnRpa2VsLUlEIGRlciBFcmtsw6RydW5ncy0vU3RhcnRzZWl0ZSAo +SGF1cHQgZGVyIFN0YW5kYXJkYW5zaWNodCkKICogICAgZGFzaCAgICAgOiBvcHRpb25hbCDigJQg +R3J1bmRzw6R0emUtQXJ0aWtlbCArIE9yZ2FuaWdyYW1tLVBERiAocmVjaHRlIFNwYWx0ZSkKICog +ICAgZ3JvdXBzW10gOiB7IHRpdGxlLCBkb2NzW10gfSAgIGdydXBwaWVydGUgU2lkZWJhcgogKiAg +ICBkb2MgICAgICA6IHsgbDpMYWJlbCwgZjpQREYtUGZhZCB9ICB8ICB7IGwsIGE6QXJ0aWtlbC1J +RCB9ICB8ICB7IGwsIGYsIHBnOlNlaXRlIH0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8Kd2luZG93 +LlBPUlRBTF9CQU8gPSB7CiAgdmVyc2lvbjogIjIuMC4wIiwKCiAgY2F0ZWdvcmllczogWwogICAg +eyBrZXk6ICJwNCIsICAgICBsYWJlbDogIsKnIDQgS0hTVFZPIiwgICAgICAgICAgc2hvcnQ6ICLC +pyA0IiwgICAgIGNvbG9yOiAiIzJmN2FkNiIgfSwKICAgIHsga2V5OiAicDIiLCAgICAgbGFiZWw6 +ICJHQSAmIMKnIDIgS0hTVFZPIiwgICAgIHNob3J0OiAiwqcgMiIsICAgICBjb2xvcjogIiMxZThh +NWEiIH0sCiAgICB7IGtleTogInAxIiwgICAgIGxhYmVsOiAiwqcgMSBLSFNUVk8iLCAgICAgICAg +ICBzaG9ydDogIsKnIDEiLCAgICAgY29sb3I6ICIjZTA2MDAwIiB9LAogICAgeyBrZXk6ICJiYWIi +LCAgICBsYWJlbDogIkJBQiAvIFZlcmtlaHJzbGFnZW4iLCBzaG9ydDogIlZlcmtlaHIiLCBjb2xv +cjogIiNlMGExMDAiIH0sCiAgICB7IGtleTogIm5vdHJ1ZiIsIGxhYmVsOiAiU29uZGVybGFnZW4i +LCAgICAgICAgIHNob3J0OiAiU29uZGVyIiwgIGNvbG9yOiAiI2IwMDAyMCIgfQogIF0sCgogIGxh +Z2VuOiBbCiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSDCpyA0IEtIU1RWTyAt +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAgICB7IGtleTogImFuc2NobGFnX2dzZSIs +IGxhYmVsOiAiQW5zY2hsYWcgLyBHU0UiLCBjYXQ6ICJwNCIsCiAgICAgIG92ZXJ2aWV3OiAiYmFv +LWFuc2NobGFnX2dzZS1kZmx0IiwKICAgICAgZGFzaDogeyBncnVuZHNhZXR6ZTogImJhby1hbnNj +aGxhZ19nc2UtZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFtbTogImJhby9wYXJhZ3JhZl80L2Fuc2No +bGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAg +ICAgZ3JvdXBzOiBbCiAgICAgICAgeyB0aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAg +ICAgICAgeyBsOiAiQkFPLUFrdGUiLCBmOiAiYmFvL2Rva3VtZW50ZS9iYW9fYWt0ZW4vYmFvX2Fu +c2NobGFnLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFvL3BhcmFn +cmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9nc2VfY2hlY2tsaXN0ZS5wZGYiIH0gXSB9LAog +ICAgICAgIHsgdGl0bGU6ICJQYXBpZXJlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiUEYgUGhh +c2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9hbnNjaGxhZ19nc2UvZG9rdW1lbnRlL0dTRV9wZi5w +ZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTAiLCBmOiAiYmFvL3BhcmFncmFm +XzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9HU0VfZnVua18xMC5wZGYiIH0sCiAgICAgICAgICB7 +IGw6ICJGdW5rc3ByZWNoZXIgMTUiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rv +a3VtZW50ZS9HU0VfZnVua18xNS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJBbGFybWllcmVyIiwg +YTogImJhby1hbGFybS1hbnNjaGxhZyIgfSwKICAgICAgICAgIHsgbDogIkxhZ2VkYXJzdGVsbHVu +ZyAvIEVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9HU0Vf +ZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFv +L3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9HU0VfYXNzLnBkZiIgfSwKICAgICAg +ICAgIHsgbDogImVQb3N0IFZvcmRydWNrZSIsIGE6ICJiYW8tYW5zY2hsYWdfZ3NlLWVwb3N0IiB9 +IF0gfSwKICAgICAgICB7IHRpdGxlOiAiQWJwYXNzIiwgZG9jczogWwogICAgICAgICAgeyBsOiAi +U2NoYXViaWxkIiwgZjogImJhby9wYXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYWJw +YXNzX3NjaGF1YmlsZC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJadXNhbW1lbmZhc3N1bmciLCBm +OiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9hYnBhc3Nfa29tcGxldHQu +cGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiWnVncmlmZmUiLCBkb2NzOiBbCiAgICAgICAg +ICB7IGw6ICJOb3R6dWdyaWZmIiwgZjogImJhby9wYXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1 +bWVudGUvYW5zY2hsYWdfbnoucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHIiwgZjogImJhby9w +YXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfemdnLnBkZiIgfSwKICAg +ICAgICAgIHsgbDogIkVpbnNjaHJlaXRzY2h3ZWxsZW4iLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5z +Y2hsYWdfZ3NlL2Rva3VtZW50ZS9hbnNjaGxhZ19laW5zY2hyZWl0c2Nod2VsbGVuLnBkZiIgfSwK +ICAgICAgICAgIHsgbDogIkxlaXRsaW5pZW4iLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdf +Z3NlL2Rva3VtZW50ZS9hbnNjaGxhZ19sZWl0bGluaWVuLnBkZiIgfSBdIH0sCiAgICAgICAgeyB0 +aXRsZTogIkluZm9ybWF0aW9uIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRXJuc3RoYWZ0aWdr +ZWl0IiwgZjogImJhby9wYXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdf +ZXJuc3RoYWZ0aWdrZWl0LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkdlZmFocmVuYW5hbHlzZSIs +IGY6ICJiYW8vcGFyYWdyYWZfNC9hbnNjaGxhZ19nc2UvZG9rdW1lbnRlL2Fuc2NobGFnX2dlZmFo +cmVuYW5hbHlzZS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJMWlBEIC8gTEtBIiwgZjogImJhby9w +YXJhZ3JhZl80L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfbHpwZF9sa2EucGRmIiB9 +LAogICAgICAgICAgeyBsOiAiS29tbXVuaWthdGlvbiBCZXYuIiwgZjogImJhby9wYXJhZ3JhZl80 +L2Fuc2NobGFnX2dzZS9kb2t1bWVudGUvYW5zY2hsYWdfa29tbXVuaWthdGlvbi5wZGYiIH0sCiAg +ICAgICAgICB7IGw6ICJFUMOWQSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9hbnNjaGxhZ19nc2UvZG9r +dW1lbnRlL2Fuc2NobGFnX2Vwb2VhLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVycmVpY2hiYXJr +ZWl0ZW4iLCBmOiAiYmFvL3BhcmFncmFmXzQvYW5zY2hsYWdfZ3NlL2Rva3VtZW50ZS9hbnNjaGxh +Z19lcnJlaWNoYmFya2VpdGVuLnBkZiIgfSBdIH0KICAgICAgXSB9LAoKICAgIHsga2V5OiAiYW1v +ayIsIGxhYmVsOiAiQW1vayIsIGNhdDogInA0IiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tYW1vay1k +Zmx0IiwKICAgICAgZGFzaDogeyBncnVuZHNhZXR6ZTogImJhby1hbW9rLWdydW5kc2FldHplIiwg +b3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3BoYXNlMV9v +cmdhbmlncmFtbS5wZGYiIH0sCiAgICAgIGdyb3VwczogWwogICAgICAgIHsgdGl0bGU6ICJFaW5z +YXR6YWt0ZSIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkJBTy1Ba3RlIiwgZjogImJhby9kb2t1 +bWVudGUvYmFvX2FrdGVuL2Jhb19hbW9rLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlz +dGUiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1va19jaGVja2xpc3RlLnBk +ZiIgfSwKICAgICAgICAgIHsgbDogIkbDvGhydW5nc8O8YmVybmFobWUiLCBmOiAiYmFvL3BhcmFn +cmFmXzQvYW1vay9kb2t1bWVudGUvYW1va19mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIgfSBdIH0s +CiAgICAgICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQRiBQ +aGFzZSAxIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfcGYucGRmIiB9 +LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDEwIiwgZjogImJhby9wYXJhZ3JhZl80L2Ft +b2svZG9rdW1lbnRlL2Ftb2tfZnVua18xMC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3By +ZWNoZXIgMTUiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1va19mdW5rXzE1 +LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJtaWVyZXIiLCBhOiAiYmFvLWFsYXJtLWFtb2si +IH0sCiAgICAgICAgICB7IGw6ICJMYWdlZGFyc3RlbGx1bmcgLyBFbGxhIiwgZjogImJhby9wYXJh +Z3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJG +w7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1v +a19hc3MucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiWnVncmlmZmUiLCBkb2NzOiBbCiAg +ICAgICAgICB7IGw6ICJOb3R6dWdyaWZmIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1l +bnRlL2Ftb2tfbm90enVncmlmZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJaZ0cgMSIsIGY6ICJi +YW8vcGFyYWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3pnZzEucGRmIiB9LAogICAgICAgICAg +eyBsOiAiWmdHIDIiLCBmOiAiYmFvL3BhcmFncmFmXzQvYW1vay9kb2t1bWVudGUvYW1va196Z2cy +LnBkZiIgfSwKICAgICAgICAgIHsgbDogIlpnRyAzIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2sv +ZG9rdW1lbnRlL2Ftb2tfemdnMy5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJHZXBsYW50ZXIgWnVn +cmlmZiAxIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZ3oxLnBkZiIg +fSwKICAgICAgICAgIHsgbDogIkdlcGxhbnRlciBadWdyaWZmIDIiLCBmOiAiYmFvL3BhcmFncmFm +XzQvYW1vay9kb2t1bWVudGUvYW1va19nejIucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAi +U29uc3RpZ2VzIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRWluc2F0emdydW5kc8OkdHplIiwg +ZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZWluc2F0emdydW5kc2FldHpl +LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVyc3RzcHJlY2hlciIsIGY6ICJiYW8vcGFyYWdyYWZf +NC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9lcnN0c3ByZWNoZXIucGRmIiB9LAogICAgICAgICAg +eyBsOiAiQmV0cmV1dW5nIiwgZjogImJhby9wYXJhZ3JhZl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tf +YmV0cmV1dW5nLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVQw5ZBIiwgZjogImJhby9wYXJhZ3Jh +Zl80L2Ftb2svZG9rdW1lbnRlL2Ftb2tfZXBvZWEucGRmIiB9LAogICAgICAgICAgeyBsOiAiVmVy +aGFuZGx1bmdlbiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3Zlcmhh +bmRsdW5nZW4ucGRmIiB9LAogICAgICAgICAgeyBsOiAiVmVyZm9sZ3VuZyIsIGY6ICJiYW8vcGFy +YWdyYWZfNC9hbW9rL2Rva3VtZW50ZS9hbW9rX3ZlcmZvbGd1bmcucGRmIiB9IF0gfQogICAgICBd +IH0sCgogICAgeyBrZXk6ICJnZWlzZWwiLCBsYWJlbDogIkdlaXNlbG5haG1lIiwgY2F0OiAicDQi +LAogICAgICBvdmVydmlldzogImJhby1nZWlzZWwtZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1bmRz +YWV0emU6ICJiYW8tZ2Vpc2VsLWdydW5kc2FldHplIiwgb3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdy +YWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9waGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAog +ICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAg +ICAgICAgICB7IGw6ICJCQU8tQWt0ZSIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9f +Z2Vpc2VsbmFobWUucGRmIiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSBTdGF0aW9uw6Ry +IiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2NoZWNrbGlzdGVf +cGhhc2UxX3N0YXRpb25hZXIucGRmIiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSBNb2Jp +bCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9jaGVja2xpc3Rl +X3BoYXNlMV9tb2JpbC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJOb3R6dWdyaWZmIiwgZjogImJh +by9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX25vdHp1Z3JpZmYucGRmIiB9LAog +ICAgICAgICAgeyBsOiAiWmdHIiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUv +Z2Vpc2VsX3pnZy5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0bGU6ICJTdGF0aW9uw6RyIiwgZG9j +czogWwogICAgICAgICAgeyBsOiAiTGVpdGxpbmllbiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlz +ZWwvZG9rdW1lbnRlL2dlaXNlbF9sZWl0bGluaWVuX3N0YXRpb25hZXIucGRmIiB9LAogICAgICAg +ICAgeyBsOiAiUEYgUGhhc2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRl +L2dlaXNlbF9wZl9zdGF0aW9uYWVyLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hl +ciAxMCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9mdW5rX3N0 +YXRpb25hZXJfMTAucGRmIiB9LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjog +ImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2Z1bmtfc3RhdGlvbmFlcl8x +NS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJBbGFybWllcmVyIiwgYTogImJhby1hbGFybS1nZWlz +ZWwiIH0sCiAgICAgICAgICB7IGw6ICJMYWdlZGFyc3RlbGx1bmcgLyBFTExBIiwgZjogImJhby9w +YXJhZ3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2VsbGEucGRmIiB9LAogICAgICAgICAg +eyBsOiAiRsO8aHJ1bmdzYXNzaXN0ZW50IiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9kb2t1 +bWVudGUvZ2Vpc2VsX2Fzcy5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJBdWZ0cmFnIE9CUyIsIGY6 +ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1lbnRlL2dlaXNlbF9hdWZ0cmFnX29ic19zdGF0 +aW9uYWVyLnBkZiIgfSBdIH0sCiAgICAgICAgeyB0aXRsZTogIk1vYmlsIiwgZG9jczogWwogICAg +ICAgICAgeyBsOiAiTGVpdGxpbmllbiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9nZWlzZWwvZG9rdW1l +bnRlL2dlaXNlbF9sZWl0bGluaWVuX21vYmlsLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlBGIFBo +YXNlIDEiLCBmOiAiYmFvL3BhcmFncmFmXzQvZ2Vpc2VsL2Rva3VtZW50ZS9nZWlzZWxfcGZfbW9i +aWwucGRmIiB9LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDEwIiwgZjogImJhby9wYXJh +Z3JhZl80L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2Z1bmtfbW9iaWxfMTAucGRmIiB9LAogICAg +ICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjogImJhby9wYXJhZ3JhZl80L2dlaXNlbC9k +b2t1bWVudGUvZ2Vpc2VsX2Z1bmtfbW9iaWxfMTUucGRmIiB9LAogICAgICAgICAgeyBsOiAiQXVm +dHJhZyBPQlMiLCBmOiAiYmFvL3BhcmFncmFmXzQvZ2Vpc2VsL2Rva3VtZW50ZS9nZWlzZWxfYXVm +dHJhZ19vYnNfbW9iaWwucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiU29uc3RpZ2VzIiwg +ZG9jczogWwogICAgICAgICAgeyBsOiAiRXJzdHNwcmVjaGVyIiwgZjogImJhby9wYXJhZ3JhZl80 +L2dlaXNlbC9kb2t1bWVudGUvZ2Vpc2VsX2Vyc3RzcHJlY2hlci5wZGYiIH0gXSB9CiAgICAgIF0g +fSwKCiAgICB7IGtleTogImVudGZ1ZWhydW5nIiwgbGFiZWw6ICJFbnRmw7xocnVuZyIsIGNhdDog +InA0IiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tZW50ZnVlaHJ1bmctZGZsdCIsCiAgICAgIGRhc2g6 +IHsgZ3J1bmRzYWV0emU6ICJiYW8tZW50ZnVlaHJ1bmctZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFt +bTogImJhby9wYXJhZ3JhZl80L2VudGZ1ZWhydW5nL2Rva3VtZW50ZS9lbnRmdWVocnVuZ19waGFz +ZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAi +RWluc2F0emFrdGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJCQU8tQWt0ZSIsIGY6ICJiYW8v +ZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9fZW50ZnVlaHJ1bmcucGRmIiB9LAogICAgICAgICAgeyBs +OiAiQ2hlY2tsaXN0ZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRmdWVocnVuZy9kb2t1bWVudGUv +ZW50Zl9jaGVja2xpc3RlLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkbDvGhydW5nc8O8YmVybmFo +bWUiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZnVlaHJ1 +bmdzdWViZXJuYWhtZS5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0bGU6ICJQYXBpZXJlIiwgZG9j +czogWwogICAgICAgICAgeyBsOiAiUEYgUGhhc2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRm +dWVocnVuZy9kb2t1bWVudGUvZW50Zl9wZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3By +ZWNoZXIgMTAiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZf +ZnVua18xMC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTUiLCBmOiAiYmFv +L3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZnVua18xNS5wZGYiIH0sCiAg +ICAgICAgICB7IGw6ICJBbGFybWllcmVyIiwgYTogImJhby1hbGFybS1lbnRmdWVocnVuZyIgfSwK +ICAgICAgICAgIHsgbDogIkVsbGEgKElubmVyaGFsYikiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50 +ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZWxsYV9pbm5lcmhhbGIucGRmIiB9LAogICAgICAgICAg +eyBsOiAiRWxsYSAoQXXDn2VyaGFsYikiLCBmOiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcv +ZG9rdW1lbnRlL2VudGZfZWxsYV9hdXNzZXJoYWxiLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkbD +vGhydW5nc2Fzc2lzdGVudCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRmdWVocnVuZy9kb2t1bWVu +dGUvZW50Zl9hc3MucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiWkdHIC8gTloiLCBkb2Nz +OiBbCiAgICAgICAgICB7IGw6ICJMZWl0bGluaWVuIiwgZjogImJhby9wYXJhZ3JhZl80L2VudGZ1 +ZWhydW5nL2Rva3VtZW50ZS9lbnRmX2xlaXQucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHMSAt +IEZyZWlnYWJlIiwgZjogImJhby9wYXJhZ3JhZl80L2VudGZ1ZWhydW5nL2Rva3VtZW50ZS9lbnRm +X3pnZzEucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHMSAtIEUuLXNjaHdlbGxlIiwgZjogImJh +by9wYXJhZ3JhZl80L2VudGZ1ZWhydW5nL2Rva3VtZW50ZS9lbnRmX2VpbnNjaHJlaXRfemdnMS5w +ZGYiIH0sCiAgICAgICAgICB7IGw6ICJaR0cyIC0gRnJlaWdhYmUiLCBmOiAiYmFvL3BhcmFncmFm +XzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfemdnMi5wZGYiIH0sCiAgICAgICAgICB7IGw6 +ICJOWkcgLSBGcmVpZ2FiZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9lbnRmdWVocnVuZy9kb2t1bWVu +dGUvZW50Zl9ub3QucGRmIiB9LAogICAgICAgICAgeyBsOiAiTlpHIC0gRS4tc2Nod2VsbGUiLCBm +OiAiYmFvL3BhcmFncmFmXzQvZW50ZnVlaHJ1bmcvZG9rdW1lbnRlL2VudGZfZWluc2NocmVpdF9u +b3QucGRmIiB9IF0gfSwKICAgICAgICB7IHRpdGxlOiAiRXJzdGtvbnRha3QiLCBkb2NzOiBbCiAg +ICAgICAgICB7IGw6ICJOb3RydWYgQmVmcmFndW5nIiwgZjogImJhby9wYXJhZ3JhZl80L2VudGZ1 +ZWhydW5nL2Rva3VtZW50ZS9lbnRmX2JlZnJhZ3VuZy5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAg +ICB7IGtleTogInJlbmVnYWRlIiwgbGFiZWw6ICJSZW5lZ2FkZSIsIGNhdDogInA0IiwKICAgICAg +b3ZlcnZpZXc6ICJiYW8tcmVuZWdhZGUtZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0emU6 +ICJiYW8tcmVuZWdhZGUtZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFtbTogImJhby9wYXJhZ3JhZl80 +L3JlbmVnYWRlL2Rva3VtZW50ZS9yZW5lZ2FkZV9waGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAog +ICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAg +ICAgICAgICB7IGw6ICJSZW5lZ2FkZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1 +bWVudGUvYmFvX3JlbmVnYWRlLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBm +OiAiYmFvL3BhcmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3JlbmVnYWRlX2NoZWNrbGlzdGVf +cGhhc2UxLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlNvZm9ydG1lbGR1bmciLCBmOiAiYmFvL3Bh +cmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL2Jhb19yZW5lZ2FkZS5wZGYiLCBwZzogMzYgfSBd +IH0sCiAgICAgICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQ +RiBQaGFzZSAxIiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRlL2Rva3VtZW50ZS9yZW5lZ2Fk +ZV9wZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTAiLCBmOiAiYmFvL3Bh +cmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3JlbmVnYWRlX2Z1bmtfMTAucGRmIiB9LAogICAg +ICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRl +L2Rva3VtZW50ZS9yZW5lZ2FkZV9mdW5rXzE1LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJt +aWVyZXIiLCBhOiAiYmFvLWFsYXJtLXJlbmVnYWRlIiB9LAogICAgICAgICAgeyBsOiAiTGFnZWRh +cnN0ZWxsdW5nIC8gRWxsYSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUv +cmVuZWdhZGVfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQi +LCBmOiAiYmFvL3BhcmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3JlbmVnYWRlX2Fzcy5wZGYi +IH0gXSB9LAogICAgICAgIHsgdGl0bGU6ICJOWiAvIFpHRyIsIGRvY3M6IFsKICAgICAgICAgIHsg +bDogIk5vdHp1Z3JpZmYiLCBmOiAiYmFvL3BhcmFncmFmXzQvcmVuZWdhZGUvZG9rdW1lbnRlL3Jl +bmVnYWRlX25vdHp1Z3JpZmYucGRmIiB9LAogICAgICAgICAgeyBsOiAiWkdHMSIsIGY6ICJiYW8v +cGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVfemdnMS5wZGYiIH0sCiAgICAg +ICAgICB7IGw6ICJaR0cyIiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRlL2Rva3VtZW50ZS9y +ZW5lZ2FkZV96Z2cyLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVpbnNjaHJlaXRzY2h3LiBOWiIs +IGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVfZWluc2NocmVp +dHNjaHdlbGxlX25vdHp1Z3JpZmYucGRmIiB9LAogICAgICAgICAgeyBsOiAiRWluc2NocmVpdHNj +aHcuIFpHRyIsIGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVf +ZWluc2NocmVpdHNjaHdlbGxlX3pnZy5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJWZXJoaW4uIEF1 +c2JydWNoIiwgZjogImJhby9wYXJhZ3JhZl80L3JlbmVnYWRlL2Rva3VtZW50ZS9yZW5lZ2FkZV92 +ZXJoaW5kZXJ1bmdfYXVzYnJ1Y2gucGRmIiB9LAogICAgICAgICAgeyBsOiAiTGVpdGxpbmllbiIs +IGY6ICJiYW8vcGFyYWdyYWZfNC9yZW5lZ2FkZS9kb2t1bWVudGUvcmVuZWdhZGVfbGVpdGxpbmll +bi5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICB7IGtleTogImp2YSIsIGxhYmVsOiAiU3TDtnJ1 +bmcgSlZBIC8gTVJWIiwgY2F0OiAicDQiLAogICAgICBvdmVydmlldzogImJhby1qdmEtZGZsdCIs +CiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0emU6ICJiYW8tanZhLWdydW5kc2FldHplIiwgb3JnYW5p +Z3JhbW06ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9waGFzZTFfb3JnYW5pZ3Jh +bW0ucGRmIiB9LAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUi +LCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJCQU8tQWt0ZSIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jh +b19ha3Rlbi9iYW9fanZhX21ydi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwg +ZjogImJhby9wYXJhZ3JhZl80L2p2YS9kb2t1bWVudGUvanZhX2NoZWNrbGlzdGUucGRmIiB9LAog +ICAgICAgICAgeyBsOiAiRsO8aHJ1bmdzw7xiZXJuYWhtZSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9q +dmEvZG9rdW1lbnRlL2p2YV9mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIgfSBdIH0sCiAgICAgICAg +eyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQRiBQaGFzZSAxIiwg +ZjogImJhby9wYXJhZ3JhZl80L2p2YS9kb2t1bWVudGUvanZhX3BmLnBkZiIgfSwKICAgICAgICAg +IHsgbDogIkZ1bmtzcHJlY2hlciAxMCIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRl +L2p2YV9mdW5rXzEwLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hlciAxNSIsIGY6 +ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9mdW5rXzE1LnBkZiIgfSwKICAgICAg +ICAgIHsgbDogIkFsYXJtaWVyZXIiLCBhOiAiYmFvLWFsYXJtLWp2YSIgfSwKICAgICAgICAgIHsg +bDogIkxhZ2VkYXJzdGVsbHVuZyAvIEVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzQvanZhL2Rva3Vt +ZW50ZS9qdmFfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQi +LCBmOiAiYmFvL3BhcmFncmFmXzQvanZhL2Rva3VtZW50ZS9qdmFfYXNzLnBkZiIgfSBdIH0sCiAg +ICAgICAgeyB0aXRsZTogIlNvbnN0aWdlcyIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkVpbnNj +aHJlaXRzY2h3LiBLcml0LiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9l +aW5zY2hyZWl0c2Nod2VsbGVuX2tyaXRlcmllbi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJFaW5z +Y2hyZWl0c2Nody4gQWx0MSIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2YV9l +aW5zY2hyZWl0c2Nod2VsbGVuX2FsdGVybmF0aXZlMS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJF +aW5zY2hyZWl0c2Nody4gQWx0MiIsIGY6ICJiYW8vcGFyYWdyYWZfNC9qdmEvZG9rdW1lbnRlL2p2 +YV9laW5zY2hyZWl0c2Nod2VsbGVuX2FsdGVybmF0aXZlMi5wZGYiIH0gXSB9LAogICAgICAgIHsg +dGl0bGU6ICJFcnN0a29udGFrdCIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkVyc3Rrb250YWt0 +IiwgZjogImJhby9wYXJhZ3JhZl80L2p2YS9kb2t1bWVudGUvanZhX2Vyc3Rrb250YWt0LnBkZiIg +fSBdIH0KICAgICAgXSB9LAoKICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEdBICYg +wqcgMiBLSFNUVk8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICAgIHsga2V5OiAiZXJw +cmVzc3VuZyIsIGxhYmVsOiAiRXJwcmVzc3VuZyIsIGNhdDogInAyIiwKICAgICAgb3ZlcnZpZXc6 +ICJiYW8tZXJwcmVzc3VuZy1kZmx0IiwKICAgICAgZGFzaDogeyBncnVuZHNhZXR6ZTogImJhby1l +cnByZXNzdW5nLWdydW5kc2FldHplIiwgb3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdyYWZfMi9lcnBy +ZXNzdW5nL2Rva3VtZW50ZS9lcnByZXNzdW5nX3BoYXNlMV9vcmdhbmlncmFtbS5wZGYiIH0sCiAg +ICAgIGdyb3VwczogWwogICAgICAgIHsgdGl0bGU6ICJFaW5zYXR6YWt0ZSIsIGRvY3M6IFsKICAg +ICAgICAgIHsgbDogIkVycHJlc3N1bmciLCBmOiAiYmFvL2Rva3VtZW50ZS9iYW9fYWt0ZW4vYmFv +X2VycHJlc3N1bmcucGRmIiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSIsIGY6ICJiYW8v +cGFyYWdyYWZfMi9lcnByZXNzdW5nL2Rva3VtZW50ZS9lcnByX2NoZWNrbGlzdGUucGRmIiB9LAog +ICAgICAgICAgeyBsOiAiRXJzdG1hw59uYWhtZW4iLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVz +c3VuZy9kb2t1bWVudGUvZXJwcl9lcnN0bWHDn25haG1lbi5wZGYiIH0gXSB9LAogICAgICAgIHsg +dGl0bGU6ICJQYXBpZXJlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiTGVpdGxpbmllbiIsIGY6 +ICJiYW8vcGFyYWdyYWZfMi9lcnByZXNzdW5nL2Rva3VtZW50ZS9lcnByX2xlaXRsaW5pZW4ucGRm +IiB9LAogICAgICAgICAgeyBsOiAiUEYgUGhhc2UgMSIsIGY6ICJiYW8vcGFyYWdyYWZfMi9lcnBy +ZXNzdW5nL2Rva3VtZW50ZS9lcnByX3BmX2lubmVyaGFsYi5wZGYiIH0sCiAgICAgICAgICB7IGw6 +ICJGdW5rc3ByZWNoZXIgMTAiLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVzc3VuZy9kb2t1bWVu +dGUvZXJwcl9mdW5rXzEwLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hlciAxNSIs +IGY6ICJiYW8vcGFyYWdyYWZfMi9lcnByZXNzdW5nL2Rva3VtZW50ZS9lcnByX2Z1bmtfMTUucGRm +IiB9LAogICAgICAgICAgeyBsOiAiQWxhcm1pZXJlciIsIGE6ICJiYW8tYWxhcm0tZXJwcmVzc3Vu +ZyIgfSwKICAgICAgICAgIHsgbDogIkVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVzc3Vu +Zy9kb2t1bWVudGUvZXJwcl9lbGxhX2lubmVyaGFsYi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJG +w7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFvL3BhcmFncmFmXzIvZXJwcmVzc3VuZy9kb2t1bWVu +dGUvZXJwcl9hc3MucGRmIiB9IF0gfQogICAgICBdIH0sCgogICAgLyogLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0gwqcgMSBLSFNUVk8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq +LwogICAgeyBrZXk6ICJiZWRyb2h1bmdzbGFnZSIsIGxhYmVsOiAiQmVkcm9odW5nc2xhZ2UiLCBj +YXQ6ICJwMSIsCiAgICAgIG92ZXJ2aWV3OiAiYmFvLWJlZHJvaHVuZ3NsYWdlLWRmbHQiLAogICAg +ICBkYXNoOiB7IGdydW5kc2FldHplOiAiYmFvLWJlZHJvaHVuZ3NsYWdlLWdydW5kc2FldHplIiwg +b3JnYW5pZ3JhbW06ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFnZS9kb2t1bWVudGUvYmVk +cm9odW5nX3BoYXNlMV9vcmdhbmlncmFtbS5wZGYiIH0sCiAgICAgIGdyb3VwczogWwogICAgICAg +IHsgdGl0bGU6ICJFaW5zYXR6YWt0ZSIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkJlZHJvaHVu +Z3NsYWdlIiwgZjogImJhby9kb2t1bWVudGUvYmFvX2FrdGVuL2Jhb19iZWRyb2h1bmdzbGFnZS5w +ZGYiIH0sCiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwgZjogImJhby9wYXJhZ3JhZl8xL2Jl +ZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX2NoZWNrbGlzdGUucGRmIiB9LAogICAgICAgICAg +eyBsOiAiRsO8aHJ1bmdzw7xiZXJuYWhtZSIsIGY6ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdz +bGFnZS9kb2t1bWVudGUvYmVkcl9mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIgfSBdIH0sCiAgICAg +ICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJQRiBQaGFzZSAx +IiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX3BmLnBk +ZiIgfSwKICAgICAgICAgIHsgbDogIkZ1bmtzcHJlY2hlciAxMCIsIGY6ICJiYW8vcGFyYWdyYWZf +MS9iZWRyb2h1bmdzbGFnZS9kb2t1bWVudGUvYmVkcl9mdW5rXzEwLnBkZiIgfSwKICAgICAgICAg +IHsgbDogIkZ1bmtzcHJlY2hlciAxNSIsIGY6ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFn +ZS9kb2t1bWVudGUvYmVkcl9mdW5rXzE1LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJtaWVy +ZXIiLCBhOiAiYmFvLWFsYXJtLWJlZHJvaHVuZyIgfSwKICAgICAgICAgIHsgbDogIkxhZ2VkYXJz +dGVsbHVuZyAvIEVsbGEiLCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9odW5nc2xhZ2UvZG9rdW1l +bnRlL2JlZHJfZWxsYS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQi +LCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9odW5nc2xhZ2UvZG9rdW1lbnRlL2JlZHJfYXNzLnBk +ZiIgfSBdIH0sCiAgICAgICAgeyB0aXRsZTogIk5aIC8gWkdHIiwgZG9jczogWwogICAgICAgICAg +eyBsOiAiTGVpdGxpbmllbiIsIGY6ICJiYW8vcGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFnZS9kb2t1 +bWVudGUvYmVkcl9sZWl0bGluaWVuLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkbDvGhydW5nc3dl +Y2hzZWwiLCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9odW5nc2xhZ2UvZG9rdW1lbnRlL2JlZHJf +ZnVlaHJ1bmdzd2VjaHNlbC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJaR0cxIiwgZjogImJhby9w +YXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX3pnZzEucGRmIiB9LAogICAg +ICAgICAgeyBsOiAiWkdHMSAtIEUuLXNjaHdlbGxlIiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJv +aHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRyX2VpbnNjaHJlaXRfemdnMS5wZGYiIH0sCiAgICAgICAg +ICB7IGw6ICJaR0cyIiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50 +ZS9iZWRyX3pnZzIucGRmIiB9LAogICAgICAgICAgeyBsOiAiTm90enVncmlmZiIsIGY6ICJiYW8v +cGFyYWdyYWZfMS9iZWRyb2h1bmdzbGFnZS9kb2t1bWVudGUvYmVkcl9ub3QucGRmIiB9LAogICAg +ICAgICAgeyBsOiAiTlpHIC0gRS4tc2Nod2VsbGUiLCBmOiAiYmFvL3BhcmFncmFmXzEvYmVkcm9o +dW5nc2xhZ2UvZG9rdW1lbnRlL2JlZHJfZWluc2NocmVpdF9ub3QucGRmIiB9IF0gfSwKICAgICAg +ICB7IHRpdGxlOiAiRXJzdHNwcmVjaGVyIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRXJzdHNw +cmVjaGVyIiwgZjogImJhby9wYXJhZ3JhZl8xL2JlZHJvaHVuZ3NsYWdlL2Rva3VtZW50ZS9iZWRy +X2Vyc3RzcHJlY2hlci5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICB7IGtleTogInNwb250YW5l +X2FrdGlvbmVuIiwgbGFiZWw6ICJTcG9udGFuZSBBa3Rpb25lbiIsIGNhdDogInAxIiwKICAgICAg +b3ZlcnZpZXc6ICJiYW8tc3BvbnRhbmVfYWt0aW9uZW4tZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1 +bmRzYWV0emU6ICJiYW8tc3BvbnRhbmVfYWt0aW9uZW4tZ3J1bmRzYWV0emUiLCBvcmdhbmlncmFt +bTogImJhby9wYXJhZ3JhZl8xL3Nwb250YW5lX2FrdGlvbmVuL2Rva3VtZW50ZS9zcG9udGFrdF9w +aGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxl +OiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJTcG9udGFuZSBBa3Rpb25l +biIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9fc3BvbnRhbmVfYWt0aW9uZW4ucGRm +IiB9LAogICAgICAgICAgeyBsOiAiQ2hlY2tsaXN0ZSIsIGY6ICJiYW8vcGFyYWdyYWZfMS9zcG9u +dGFuZV9ha3Rpb25lbi9kb2t1bWVudGUvc3BvbnRha3RfY2hlY2tsaXN0ZS5wZGYiIH0sCiAgICAg +ICAgICB7IGw6ICJGw7xocnVuZ3PDvGJlcm5haG1lIiwgZjogImJhby9wYXJhZ3JhZl8xL3Nwb250 +YW5lX2FrdGlvbmVuL2Rva3VtZW50ZS9zcG9udGFrdF9mdWVocnVuZ3N1ZWJlcm5haG1lLnBkZiIg +fSBdIH0sCiAgICAgICAgeyB0aXRsZTogIlBhcGllcmUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6 +ICJQRiBQaGFzZSAxIiwgZjogImJhby9wYXJhZ3JhZl8xL3Nwb250YW5lX2FrdGlvbmVuL2Rva3Vt +ZW50ZS9zcG9udGFrdF9wZi5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJGdW5rc3ByZWNoZXIgMTAi +LCBmOiAiYmFvL3BhcmFncmFmXzEvc3BvbnRhbmVfYWt0aW9uZW4vZG9rdW1lbnRlL3Nwb250YWt0 +X2Z1bmtfMTAucGRmIiB9LAogICAgICAgICAgeyBsOiAiRnVua3NwcmVjaGVyIDE1IiwgZjogImJh +by9wYXJhZ3JhZl8xL3Nwb250YW5lX2FrdGlvbmVuL2Rva3VtZW50ZS9zcG9udGFrdF9mdW5rXzE1 +LnBkZiIgfSwKICAgICAgICAgIHsgbDogIkFsYXJtaWVyZXIiLCBhOiAiYmFvLWFsYXJtLXNwb250 +YWt0IiB9LAogICAgICAgICAgeyBsOiAiTGFnZWRhcnN0ZWxsdW5nIC8gRWxsYSIsIGY6ICJiYW8v +cGFyYWdyYWZfMS9zcG9udGFuZV9ha3Rpb25lbi9kb2t1bWVudGUvc3BvbnRha3RfZWxsYS5wZGYi +IH0sCiAgICAgICAgICB7IGw6ICJGw7xocnVuZ3Nhc3Npc3RlbnQiLCBmOiAiYmFvL3BhcmFncmFm +XzEvc3BvbnRhbmVfYWt0aW9uZW4vZG9rdW1lbnRlL3Nwb250YWt0X2Fzcy5wZGYiIH0gXSB9LAog +ICAgICAgIHsgdGl0bGU6ICJEZWZpbml0aW9uIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiU2Ft +bWx1bmciLCBmOiAiYmFvL3BhcmFncmFmXzEvc3BvbnRhbmVfYWt0aW9uZW4vZG9rdW1lbnRlL2Rl +ZmluaXRpb24ucGRmIiB9IF0gfQogICAgICBdIH0sCgogICAgLyogLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLSBCQUIgLyBWZXJrZWhyc2xhZ2VuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAg +ICB7IGtleTogInR1bm5lbCIsIGxhYmVsOiAiVHVubmVsZXJlaWduaXMiLCBjYXQ6ICJiYWIiLAog +ICAgICBvdmVydmlldzogImJhby10dW5uZWwtZGZsdCIsCiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0 +emU6ICJiYW8tdHVubmVsLWdydW5kc2FldHplIiwgb3JnYW5pZ3JhbW06ICJiYW8vdmVya2Voci90 +dW5uZWwvZG9rdW1lbnRlL3R1bm5lbF9waGFzZTFfb3JnYW5pZ3JhbW0ucGRmIiB9LAogICAgICBn +cm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUiLCBkb2NzOiBbCiAgICAgICAg +ICB7IGw6ICJUdW5uZWxlcmVpZ25pcyIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9f +dHVubmVsLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFvL3Zlcmtl +aHIvdHVubmVsL2Rva3VtZW50ZS90dW5uZWxfY2hlY2tsaXN0ZS5wZGYiIH0gXSB9LAogICAgICAg +IHsgdGl0bGU6ICJJbmZvcm1hdGlvbiIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkxlaXRzdGVs +bGVucGFwaWVyIiwgZjogImJhby92ZXJrZWhyL3R1bm5lbC9kb2t1bWVudGUvdHVubmVsX2xlaXRz +dGVsbGVucGFwaWVyLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlR1bm5lbGZyZWlnYWJlIiwgZjog +ImJhby92ZXJrZWhyL3R1bm5lbC9kb2t1bWVudGUvdHVubmVsX2ZyZWlnYWJlLnBkZiIgfSwKICAg +ICAgICAgIHsgbDogIlR1bm5lbGZyZWlnYWJlIEtvbS4iLCBmOiAiYmFvL3ZlcmtlaHIvdHVubmVs +L2Rva3VtZW50ZS90dW5uZWxfa29tbXVuaWthdGlvbl9mcmVpZ2FiZS5wZGYiIH0gXSB9CiAgICAg +IF0gfSwKCiAgICB7IGtleTogImZhbHNjaGZhaHJlciIsIGxhYmVsOiAiRmFsc2NoZmFocmVyIiwg +Y2F0OiAiYmFiIiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tZmFsc2NoZmFocmVyLWRmbHQiLAogICAg +ICBkYXNoOiB7IGdydW5kc2FldHplOiAiYmFvLWZhbHNjaGZhaHJlci1ncnVuZHNhZXR6ZSIsIG9y +Z2FuaWdyYW1tOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhy +ZXJfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAgICAgZ3JvdXBzOiBbCiAgICAgICAgeyB0 +aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRmFsc2NoZmFocmVy +IiwgZjogImJhby92ZXJrZWhyL2ZhbHNjaGZhaHJlci9kb2t1bWVudGUvRmFsc2NoZmFocmVyLnBk +ZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2No +ZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhyZXJfY2hlY2tsaXN0ZS5wZGYiIH0sCiAgICAgICAg +ICB7IGw6ICJGdW5rc3ByZWNoZXIiLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3Vt +ZW50ZS9mYWxzY2hmYWhyZXJfZnVua2VyX3BoYXNlMS5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0 +bGU6ICJJbmZvcm1hdGlvbiIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkVyc3Rhbm5haG1lIiwg +ZjogImJhby92ZXJrZWhyL2ZhbHNjaGZhaHJlci9kb2t1bWVudGUvZmFsc2NoZmFocmVyXzA2X2No +ZWNrbGlzdGVfZXJzdGFubmFobWUucGRmIiB9LAogICAgICAgICAgeyBsOiAiRUEgQXVma2zDpHJ1 +bmciLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhyZXJf +MDdfYXJiZWl0c2JsYXR0X2VhX2F1ZmtsYWVydW5nLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkVB +IE9wZXIuIE1hw59uYWhtZW4iLCBmOiAiYmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50 +ZS9mYWxzY2hmYWhyZXJfMDhfYXJiZWl0c2JsYXR0X2VhX29wZXJhdGl2ZV9tYcOfbmFobWVuLnBk +ZiIgfSwKICAgICAgICAgIHsgbDogIkVBIEVybWl0dGx1bmdlbiIsIGY6ICJiYW8vdmVya2Voci9m +YWxzY2hmYWhyZXIvZG9rdW1lbnRlL2ZhbHNjaGZhaHJlcl8wOV9hcmJlaXRzYmxhdHRfZWFfZXJt +aXR0bHVuZ2VuLnBkZiIgfSwKICAgICAgICAgIHsgbDogIlNwZXJyZSAtIEtvbnplcHQiLCBmOiAi +YmFvL3ZlcmtlaHIvZmFsc2NoZmFocmVyL2Rva3VtZW50ZS9mYWxzY2hmYWhyZXJfMTBfa29uemVw +dF9zdGF0aW9uYWVyZV9zcGVycmUucGRmIiB9LAogICAgICAgICAgeyBsOiAiU3BlcnJlIC0gQXVm +dHJhZyIsIGY6ICJiYW8vdmVya2Voci9mYWxzY2hmYWhyZXIvZG9rdW1lbnRlL2ZhbHNjaGZhaHJl +cl8xMV9hdWZ0cmFnX3N0YXRpb25hZXJlX3NwZXJyZS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJT +cGVycnN0ZWxsZW7DvGJlcnNpY2h0IiwgZjogImJhby92ZXJrZWhyL2ZhbHNjaGZhaHJlci9kb2t1 +bWVudGUvU3BlcnJzdGVsbGVuw7xiZXJzaWNodC5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICB7 +IGtleTogInZlcmZvbGd1bmdzZmFocnQiLCBsYWJlbDogIlZlcmZvbGd1bmdzZmFocnQiLCBjYXQ6 +ICJiYWIiLAogICAgICBvdmVydmlldzogImJhby12ZXJmb2xndW5nc2ZhaHJ0LWRmbHQiLAogICAg +ICBkYXNoOiB7IGdydW5kc2FldHplOiAiYmFvLXZlcmZvbGd1bmdzZmFocnQtZ3J1bmRzYWV0emUi +LCBvcmdhbmlncmFtbTogImJhby92ZXJrZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRlL3Zl +cmZvbGd1bmdfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAgICAgZ3JvdXBzOiBbCiAgICAg +ICAgeyB0aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiVmVyZm9s +Z3VuZ3NmYWhydCIsIGY6ICJiYW8vZG9rdW1lbnRlL2Jhb19ha3Rlbi9iYW9fdmVyZm9sZ3VuZ3Nm +YWhydC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwgZjogImJhby92ZXJrZWhy +L3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRlL3ZlcmZvbGd1bmdfY2hlY2tsaXN0ZS5wZGYiIH0s +CiAgICAgICAgICB7IGw6ICJMYW5kZXN0ZWlsIEsiLCBmOiAiYmFvL3ZlcmtlaHIvdmVyZm9sZ3Vu +Z3NmYWhydC9kb2t1bWVudGUvdmVyZm9sZ3VuZ19sYW5kZXN0ZWlsX2sucGRmIiB9LAogICAgICAg +ICAgeyBsOiAiRnVua2VyIiwgZjogImJhby92ZXJrZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1l +bnRlL3ZlcmZvbGd1bmdfZnVua2VyX3BoYXNlMS5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0bGU6 +ICJBYnNjaG5pdHRlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiRUEgVmVyZm9sZ3VuZyIsIGY6 +ICJiYW8vdmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0L2Rva3VtZW50ZS92ZXJmb2xndW5nX2VhX3Zl +cmZvbGd1bmcucGRmIiB9LAogICAgICAgICAgeyBsOiAiRmx1Y2h0YmVyZWljaCIsIGY6ICJiYW8v +dmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0L2Rva3VtZW50ZS92ZXJmb2xndW5nX2VhX2ZsdWNodGJl +cmVpY2gucGRmIiB9LAogICAgICAgICAgeyBsOiAiRXJtaXR0bHVuZ2VuIiwgZjogImJhby92ZXJr +ZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRlL3ZlcmZvbGd1bmdfZWFfZXJtaXR0bHVuZ2Vu +LnBkZiIgfSBdIH0sCiAgICAgICAgeyB0aXRsZTogIk1hw59uYWhtZW4iLCBkb2NzOiBbCiAgICAg +ICAgICB7IGw6ICJBUyBiZXNldHplbiIsIGY6ICJiYW8vdmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0 +L2Rva3VtZW50ZS92ZXJmb2xndW5nX2Jlc2V0emVuX2FiZmFocnQucGRmIiB9LAogICAgICAgICAg +eyBsOiAiQVMgc3BlcnJlbiIsIGY6ICJiYW8vdmVya2Voci92ZXJmb2xndW5nc2ZhaHJ0L2Rva3Vt +ZW50ZS92ZXJmb2xndW5nX3NwZXJyZW5fYWJmYWhydC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJN +b2JpbGUgU3BlcnJlIiwgZjogImJhby92ZXJrZWhyL3ZlcmZvbGd1bmdzZmFocnQvZG9rdW1lbnRl +L3ZlcmZvbGd1bmdfbW9iaWxlX3NwZXJyZS5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJTdGF0aW9u +w6RyZSBTcGVycmUiLCBmOiAiYmFvL3ZlcmtlaHIvdmVyZm9sZ3VuZ3NmYWhydC9kb2t1bWVudGUv +dmVyZm9sZ3VuZ19zdGF0aW9uYWVyZV9zcGVycmUucGRmIiB9LAogICAgICAgICAgeyBsOiAiQXVm +dHJhZyBTdGF0LiBTcGVycmUiLCBmOiAiYmFvL3ZlcmtlaHIvdmVyZm9sZ3VuZ3NmYWhydC9kb2t1 +bWVudGUvdmVyZm9sZ3VuZ19zdGF0aW9uYWVyZV9zcGVycmVfYXVmdHJhZy5wZGYiIH0sCiAgICAg +ICAgICB7IGw6ICJTcGVycnN0ZWxsZW7DvGJlcnNpY2h0IiwgZjogImJhby92ZXJrZWhyL3ZlcmZv +bGd1bmdzZmFocnQvZG9rdW1lbnRlL1NwZXJyc3RlbGxlbsO8YmVyc2ljaHQucGRmIiB9IF0gfQog +ICAgICBdIH0sCgogICAgeyBrZXk6ICJzdG9lcmZhZWxsZSIsIGxhYmVsOiAiU3TDtnJmw6RsbGUg +QkFCIiwgY2F0OiAiYmFiIiwKICAgICAgb3ZlcnZpZXc6ICJiYW8tc3RvZXJmYWVsbGUtZGZsdCIs +CiAgICAgIGRhc2g6IHsgZ3J1bmRzYWV0emU6ICJiYW8tc3RvZXJmYWVsbGUtZ3J1bmRzYWV0emUi +LCBvcmdhbmlncmFtbTogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxlL2Rva3VtZW50ZS9zdG9lcmZh +bGxfcGhhc2UxX29yZ2FuaWdyYW1tLnBkZiIgfSwKICAgICAgZ3JvdXBzOiBbCiAgICAgICAgeyB0 +aXRsZTogIkVpbnNhdHpha3RlIiwgZG9jczogWwogICAgICAgICAgeyBsOiAiU3TDtnJmw6RsbGUi +LCBmOiAiYmFvL2Rva3VtZW50ZS9iYW9fYWt0ZW4vYmFvX3N0b2VyZmFlbGxlX2JhYi5wZGYiIH0s +CiAgICAgICAgICB7IGw6ICJDaGVja2xpc3RlIiwgZjogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxl +L2Rva3VtZW50ZS9zdG9lcmZhZWxsZV9jaGVja2xpc3RlLnBkZiIgfSwKICAgICAgICAgIHsgbDog +IkxlaXRzdGVsbGVucGFwaWVyIiwgZjogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxlL2Rva3VtZW50 +ZS9zdG9lcmZhZWxsZV9sZWl0c3RlbGxlbnBhcGllci5wZGYiIH0gXSB9LAogICAgICAgIHsgdGl0 +bGU6ICJJbmZvcm1hdGlvbiIsIGRvY3M6IFsKICAgICAgICAgIHsgbDogIkxLVyBXaW50ZXJmYWhy +dmVyYm90IiwgZjogImJhby92ZXJrZWhyL3N0b2VyZmFlbGxlL2Rva3VtZW50ZS9zdG9lcmZhZWxs +ZV9sa3dfd2ludGVyZmFocnZlcmJvdC5wZGYiIH0gXSB9CiAgICAgIF0gfSwKCiAgICAvKiAtLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTb25kZXJsYWdlbiAtLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0gKi8KICAgIHsga2V5OiAibm90cnVmYXVzZmFsbCIsIGxhYmVsOiAiTm90cnVmYXVz +ZmFsbCAxMTAiLCBjYXQ6ICJub3RydWYiLAogICAgICBvdmVydmlldzogImJhby1ub3RydWZhdXNm +YWxsLWRmbHQiLAogICAgICBncm91cHM6IFsKICAgICAgICB7IHRpdGxlOiAiRWluc2F0emFrdGUi +LCBkb2NzOiBbCiAgICAgICAgICB7IGw6ICJFaW5zYXR6YWt0ZSIsIGY6ICJiYW8vbm90cnVmYXVz +ZmFsbC9kb2t1bWVudGUvRWluc2F0emFrdGVfTm90cnVmYXVzZmFsbC5wZGYiIH0sCiAgICAgICAg +ICB7IGw6ICJHcmFwaGlzY2hlciBCZWZlaGwiLCBmOiAiYmFvL25vdHJ1ZmF1c2ZhbGwvZG9rdW1l +bnRlL0FubGFnZV8xX0dyYXBoaXNjaGVyX0JlZmVobC5wZGYiIH0sCiAgICAgICAgICB7IGw6ICJL +T00tUGxhbiIsIGY6ICJiYW8vbm90cnVmYXVzZmFsbC9kb2t1bWVudGUvQW5sYWdlXzJfS29tbXVu +aWthdGlvbnNwbGFuLnBkZiIgfSwKICAgICAgICAgIHsgbDogIkNoZWNrbGlzdGUiLCBmOiAiYmFv +L25vdHJ1ZmF1c2ZhbGwvZG9rdW1lbnRlL0NoZWNrbGlzdGUucGRmIiB9IF0gfSwKICAgICAgICB7 +IHRpdGxlOiAiS29uemVwdGUgLyBBbmxhdWZwdW5rdGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6 +ICJQcsOkc2VuemtvbnplcHQgUEkgMSIsIGY6ICJiYW8vbm90cnVmYXVzZmFsbC9kb2t1bWVudGUv +QW5sYWdlXzNfUEkxX0FubGF1ZnB1bmt0ZV9QcsOkc2VuemtvbnplcHQucGRmIiB9LAogICAgICAg +ICAgeyBsOiAiUHLDpHNlbnprb256ZXB0IFBJIDIiLCBmOiAiYmFvL25vdHJ1ZmF1c2ZhbGwvZG9r +dW1lbnRlL0FubGFnZV80X1BJMl9BbmxhdWZwdW5rdGVfUHLDpHNlbnprb256ZXB0LnBkZiIgfSwK +ICAgICAgICAgIHsgbDogIlByw6RzZW56a29uemVwdCBQSSAzIiwgZjogImJhby9ub3RydWZhdXNm +YWxsL2Rva3VtZW50ZS9BbmxhZ2VfNV9QSTNfQW5sYXVmcHVua3RlX1Byw6RzZW56a29uemVwdC5w +ZGYiIH0sCiAgICAgICAgICB7IGw6ICJQcsOkc2VuemtvbnplcHQgVkkgMyIsIGY6ICJiYW8vbm90 +cnVmYXVzZmFsbC9kb2t1bWVudGUvQW5sYWdlXzZfVkkzX1Byw6RzZW56a29uemVwdC5wZGYiIH0g +XSB9LAogICAgICAgIHsgdGl0bGU6ICJEb2t1bWVudGUiLCBkb2NzOiBbCiAgICAgICAgICB7IGw6 +ICJQcm96ZXNzYmVzY2hyZWlidW5nIiwgZjogImJhby9ub3RydWZhdXNmYWxsL2Rva3VtZW50ZS9B +bmxhZ2VfOF9Qcm96ZXNzYmVzY2hyZWlidW5nX3RlcnRpYWVyZV9SdWVja2ZhbGxlYmVuZS5wZGYi +IH0sCiAgICAgICAgICB7IGw6ICJSw7xja2ZhbGxlYmVuZW4gR3JhZmlrIiwgZjogImJhby9ub3Ry +dWZhdXNmYWxsL2Rva3VtZW50ZS9BbmxhZ2VfODFfUHJvemVzc2VfUnVlY2tmYWxsZWJlbmVuX05v +dHJ1Zl8xMTAucGRmIiB9IF0gfQogICAgICBdIH0KICBdLAoKICAvKiBJbmZvIC8gU2VydmljZSDi +gJMgRG9rdW1lbnRlIGF1cyBkZW4gYmFvX3N0YXJ0LU1vZGFsZW4gKGxva2FsZSBEYXRlaWVuKSAq +LwogIGluZm86IFsKICAgIHsga2V5OiAiYmFvX2lubmVuX2F1c3NlbiIsIGxhYmVsOiAiQkFPIGlu +bmVyLSAmIGF1w59lcmhhbGIiLCAgICAgICAgdHlwZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5m +by1iYW9faW5uZW5fYXVzc2VuIiB9LAogICAgeyBrZXk6ICJoaW53ZWlzYXVmbmFobWUiLCAgbGFi +ZWw6ICJIaW53ZWlzYXVmbmFobWUgQW5zY2hsYWdzbGFnZSIsIHR5cGU6ICJhcnRpY2xlIiwgYXJ0 +OiAiYmFvLWluZm8taGlud2Vpc2F1Zm5haG1lIiB9LAogICAgeyBrZXk6ICJmdW5rX3pnZ19ueiIs +ICAgICAgbGFiZWw6ICJGdW5rc3ByZWNoZXIgWkdHIC8gTloiLCAgICAgICAgIHR5cGU6ICJhcnRp +Y2xlIiwgYXJ0OiAiYmFvLWluZm8tZnVua196Z2dfbnoiIH0sCiAgICB7IGtleTogInBtayIsICAg +ICAgICAgICAgICBsYWJlbDogIlBvbGl0aXNjaCBtb3RpdmllcnRlIEtyaW1pbmFsaXTDpHQiLCB0 +eXBlOiAiYXJ0aWNsZSIsIGFydDogImJhby1pbmZvLXBtayIgfSwKICAgIHsga2V5OiAidG9ldHVu +ZyIsICAgICAgICAgIGxhYmVsOiAiVm9yc8OkdHpsaWNoZSBUw7Z0dW5nIiwgICAgICAgICAgIHR5 +cGU6ICJhcnRpY2xlIiwgYXJ0OiAiYmFvLWluZm8tdG9ldHVuZyIgfSwKICAgIHsga2V5OiAiYnRt +IiwgICAgICAgICAgICAgIGxhYmVsOiAiSGVyc3RlbGx1bmcgdm9uIEJUTSIsICAgICAgICAgICB0 +eXBlOiAiYXJ0aWNsZSIsIGFydDogImJhby1pbmZvLWJ0bSIgfSwKICAgIHsga2V5OiAib2siLCAg +ICAgICAgICAgICAgIGxhYmVsOiAiT3JnYW5pc2llcnRlIEtyaW1pbmFsaXTDpHQiLCAgICAgdHlw +ZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5mby1vayIgfSwKICAgIHsga2V5OiAid2lydHNjaGFm +dCIsICAgICAgIGxhYmVsOiAiV2lydHNjaGFmdHNzdHJhZnRhdGVuIiwgICAgICAgICB0eXBlOiAi +YXJ0aWNsZSIsIGFydDogImJhby1pbmZvLXdpcnRzY2hhZnQiIH0sCiAgICB7IGtleTogImJsYW5r +byIsICAgICAgICAgICBsYWJlbDogIkJsYW5rby1Gb3JtdWxhcmUiLCAgICAgICAgICAgICAgdHlw +ZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5mby1ibGFua28iIH0sCiAgICB7IGtleTogIm5vdGZh +bGxvcmRuZXIiLCAgICBsYWJlbDogIk5vdGZhbGxvcmRuZXIgU2NodWxlIiwgICAgICAgICAgdHlw +ZTogImFydGljbGUiLCBhcnQ6ICJiYW8taW5mby1ub3RmYWxsb3JkbmVyIiB9LAogICAgeyBrZXk6 +ICJsb2NrZG93biIsICAgICAgICAgbGFiZWw6ICJMb2NrZG93biIsICAgICAgICAgICAgICAgICAg +ICAgIHR5cGU6ICJwZGYiLCBmaWxlOiAiYmFvL2Rva3VtZW50ZS9sb2NrZG93bi5wZGYiIH0KICBd +LAoKICAvKiBLcsOkZnRlc2FtbWVsc3RlbGxlbiAoS1NTVCkg4oCTIFBERnMgbWl0IEFuc2Nocmlm +dCAqLwogIGtzc3Q6IFsKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJQUCBEb3J0bXVuZCIs +ICAgICAgICAgICAgICAgICAgICAgYWRkcjogIjQ0MTM5IERvcnRtdW5kLCBNYXJrZ3JhZmVuc3Ry +LiAxMDIiLCAgIGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tz +YW0xLnBkZiIgfSwKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJMZW9wb2xkLUhvZXNjaC1C +ZXJ1ZnNrb2xsZWciLCAgICAgYWRkcjogIjQ0MTM1IERvcnRtdW5kLCBHcm9uYXVzdHIuIDQiLCAg +ICAgICAgIGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW0y +LnBkZiIgfSwKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJNYXgtUGxhbmNrLUd5bW5hc2l1 +bSIsICAgICAgICAgICAgYWRkcjogIjQ0MTM5IERvcnRtdW5kLCBBcmRleXN0ci4gNzAtNzIiLCAg +ICAgIGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW0zLnBk +ZiIgfSwKICAgIHsgZ3JvdXA6ICJQSSAxIiwgbGFiZWw6ICJKb2hhbm4tR3V0ZW5iZXJnLVJlYWxz +Y2h1bGUiLCAgICAgYWRkcjogIjQ0MjY1IERvcnRtdW5kLCBBbSBMaWViZXJmZWxkIDEzIiwgICAg +IGZpbGU6ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW00LnBkZiIg +fSwKICAgIHsgZ3JvdXA6ICJQSSAyIiwgbGFiZWw6ICJIZWlzZW5iZXJnLUd5bW5hc2l1bSIsICAg +ICAgICAgICAgYWRkcjogIjQ0MzM5IERvcnRtdW5kLCBQcmV1w59pc2NoZSBTdHIuIDIyNSIsICBm +aWxlOiAiYmFvL2luZm9fc2VydmljZS9rcmFlZnRlc2FtbWVsc3RlbGxlbi9Lc2FtNS5wZGYiIH0s +CiAgICB7IGdyb3VwOiAiUEkgMiIsIGxhYmVsOiAiQmVydC1CcmVjaHQtR3ltbmFzaXVtIiwgICAg +ICAgICAgIGFkZHI6ICI0NDM3OSBEb3J0bXVuZCwgQm9ja2VuZmVsZGVyIFN0ci4gNTZhIiwgZmls +ZTogImJhby9pbmZvX3NlcnZpY2Uva3JhZWZ0ZXNhbW1lbHN0ZWxsZW4vS3NhbTYucGRmIiB9LAog +ICAgeyBncm91cDogIlBJIDIiLCBsYWJlbDogIldlc3Rmw6RsaXNjaGVzIEluZHVzdHJpZW11c2V1 +bSIsICAgYWRkcjogIjQ0Mzg4IERvcnRtdW5kLCBHcnViZW53ZWcgNSIsICAgICAgICAgIGZpbGU6 +ICJiYW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW03LnBkZiIgfSwKICAg +IHsgZ3JvdXA6ICJQSSAyIiwgbGFiZWw6ICJFREcgLSBFbnRzb3JndW5nIERvcnRtdW5kIiwgICAg +ICAgYWRkcjogIjQ0MTQ3IERvcnRtdW5kLCBTdW5kZXJ3ZWcgOTgiLCAgICAgICAgIGZpbGU6ICJi +YW8vaW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW04LnBkZiIgfSwKICAgIHsg +Z3JvdXA6ICJQSSAzIiwgbGFiZWw6ICJHZXNjaHdpc3Rlci1TY2hvbGwtR2VzYW10c2NodWxlIiwg +YWRkcjogIjQ0MzA5IERvcnRtdW5kLCBIYWZlcmZlbGRzdHIuIDMtNSIsICAgIGZpbGU6ICJiYW8v +aW5mb19zZXJ2aWNlL2tyYWVmdGVzYW1tZWxzdGVsbGVuL0tzYW05LnBkZiIgfSwKICAgIHsgZ3Jv +dXA6ICJQSSAzIiwgbGFiZWw6ICJLw6R0aGUtS29sbHdpdHotR2VzYW10c2NodWxlIiwgICAgIGFk +ZHI6ICI0NDUzMiBMw7xuZW4sIERhbW13aWVzZSA4IiwgICAgICAgICAgICAgZmlsZTogImJhby9p +bmZvX3NlcnZpY2Uva3JhZWZ0ZXNhbW1lbHN0ZWxsZW4vS3NhbTEwLnBkZiIgfQogIF0KfTsK +### FILE: assets/js/features/article.js | 24156 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgYXJ0aWNsZS5qcwogICBBcnRpa2Vs +LUF1dGhvcmluZzogRWluZ2FiZWZvcm11bGFyICsga2xlaW5lciBXWVNJV1lHLUVkaXRvci4KICAg +RWluc29ydGllcnVuZyBpbiBlaW5lbiBOYXZpZ2F0aW9uc2JlcmVpY2ggKG9wdGlvbmFsIGFscyBT +dWJsaW5rKSwKICAgU3BlaWNoZXJuIGFscyBkYXRlbmdldHJpZWJlbmVyIEFydGlrZWwgKEtub3Rl +biBpbiBkYXRhLW5hdi5qcywgQm9keQogICBhdXNnZWxhZ2VydCBuYWNoIGRva3VtZW50ZS9qc29u +L2FydGlrZWwuanMpLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBz +dHJpY3QiOwogIHZhciBlbCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9 +IFAuZXNjYXBlSHRtbDsKCiAgdmFyIGVkaXRpbmcgPSBudWxsOyAgICAgLy8gYmVzdGVoZW5kZXIg +QXJ0aWtlbC1OYXYtRWludHJhZyBvZGVyIG51bGwgKG5ldSkKICB2YXIgaW5QbGFjZSA9IGZhbHNl +OyAgICAvLyBJbi1QbGFjZS1NaWdyYXRpb246IGhyZWYtS25vdGVuIGFtIHNlbGJlbiBOYXYtUGxh +dHogenVtIEFydGlrZWwgdW13YW5kZWxuCiAgdmFyIHBlbmRpbmdNaWcgPSBudWxsOyAgLy8gdm9y +YmVsZWd0ZXMgQXJ0aWtlbC1PYmpla3QgYXVzIGRlciBNaWdyYXRpb24gKGVpbm1hbGlnIGtvbnN1 +bWllcnQpCiAgdmFyIG1pZ1NvdXJjZSA9ICIiOyAgICAgLy8gUXVlbGxwZmFkIGRlcyBtaWdyaWVy +dGVuIERva3VtZW50cyAoLT4gS25vdGVuLl9taWdTb3VyY2UsIHN0YWJpbGUgWnVvcmRudW5nKQoK +ICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT0KICAgICBUaW55TUNFIChzZWxmLWhvc3RlZCwgR1BMKSDigJQgcHJp +bWFlcmUgRWRpdG9yLUVuZ2luZSBmdWVyIFJlZGFrdGV1cmUuCiAgICAgV2lyZCBudXIgaW0gTGl2 +ZS1Nb2R1cyAodWViZXIgZGVuIFBmbGVnZS1IZWxmZXIpIGdlbGFkZW4uIEZhZWxsdCBkZXIKICAg +ICBMb2FkIGF1cyBvZGVyIGlzdCBtYW4gbmljaHQgbGl2ZSwgZ3JlaWZ0IGRlciBlaW5nZWJhdXRl +IExlaWNodC1FZGl0b3IKICAgICAoI2FydC1ib2R5LCBjb250ZW50ZWRpdGFibGUpIGFscyBGYWxs +YmFjay4KICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICB2YXIgdG1jZVJlYWR5ID0gZmFsc2UsIHRtY2VM +b2FkaW5nID0gZmFsc2UsIHRtY2VFZGl0b3IgPSBudWxsOwoKICBQLmxvYWRFZGl0b3IgPSBmdW5j +dGlvbiAoKSB7CiAgICBpZiAoIVAubGl2ZSB8fCB0bWNlUmVhZHkgfHwgdG1jZUxvYWRpbmcpIHJl +dHVybjsKICAgIGlmICh3aW5kb3cudGlueW1jZSkgeyB0bWNlUmVhZHkgPSB0cnVlOyBpbml0VG1j +ZShmdW5jdGlvbiAoKSB7fSk7IHJldHVybjsgfQogICAgdG1jZUxvYWRpbmcgPSB0cnVlOwogICAg +dmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgIHMuc3JjID0gImFz +c2V0cy92ZW5kb3IvdGlueW1jZS90aW55bWNlLm1pbi5qcyI7IHMucmVmZXJyZXJQb2xpY3kgPSAi +b3JpZ2luIjsKICAgIHMub25sb2FkID0gZnVuY3Rpb24gKCkgeyB0bWNlUmVhZHkgPSB0cnVlOyBp +bml0VG1jZShmdW5jdGlvbiAoKSB7fSk7IH07CiAgICBzLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7 +IHRtY2VMb2FkaW5nID0gZmFsc2U7IFAudG9hc3QoIlByb2ZpLUVkaXRvciBuaWNodCBsYWRiYXIg +4oCUIGVpbmZhY2hlciBFZGl0b3IgYWt0aXYuIiwgdHJ1ZSk7IH07CiAgICBkb2N1bWVudC5oZWFk +LmFwcGVuZENoaWxkKHMpOwogIH07CgogIGZ1bmN0aW9uIGVuc3VyZUFyZWEoKSB7CiAgICB2YXIg +YSA9ICQoIiNhcnQtdG1jZSIpOwogICAgaWYgKCFhKSB7IGEgPSBlbCgidGV4dGFyZWEiLCB7IGlk +OiAiYXJ0LXRtY2UiIH0pOyB2YXIgdyA9ICQoIiNhcnQtd3lzaXd5ZyIpOyB3LnBhcmVudE5vZGUu +aW5zZXJ0QmVmb3JlKGEsIHcubmV4dFNpYmxpbmcpOyB9CiAgICByZXR1cm4gYTsKICB9CiAgZnVu +Y3Rpb24gaW5pdFRtY2UoY2IpIHsKICAgIGlmICh0bWNlRWRpdG9yKSB7IGNiKHRtY2VFZGl0b3Ip +OyByZXR1cm47IH0KICAgIGlmICghd2luZG93LnRpbnltY2UpIHsgY2IobnVsbCk7IHJldHVybjsg +fQogICAgZW5zdXJlQXJlYSgpOwogICAgd2luZG93LnRpbnltY2UuaW5pdCh7CiAgICAgIHNlbGVj +dG9yOiAiI2FydC10bWNlIiwKICAgICAgbGljZW5zZV9rZXk6ICJncGwiLAogICAgICBwcm9tb3Rp +b246IGZhbHNlLCBicmFuZGluZzogZmFsc2UsIG1lbnViYXI6IGZhbHNlLCBzdGF0dXNiYXI6IGZh +bHNlLAogICAgICBoZWlnaHQ6IDU2MCwgdWlfbW9kZTogInNwbGl0IiwgY29udmVydF91cmxzOiBm +YWxzZSwKICAgICAgc2tpbjogIm94aWRlLWRhcmsiLCBjb250ZW50X2NzczogImRhcmsiLAogICAg +ICBsYW5ndWFnZTogImRlIiwKICAgICAgcGx1Z2luczogImFkdmxpc3QgYXV0b2xpbmsgbGlzdHMg +bGluayBpbWFnZSBjaGFybWFwIHNlYXJjaHJlcGxhY2UgdmlzdWFsYmxvY2tzIGNvZGUgZnVsbHNj +cmVlbiBtZWRpYSB0YWJsZSB3b3JkY291bnQgaGVscCBxdWlja2JhcnMiLAogICAgICB0b29sYmFy +X21vZGU6ICJ3cmFwIiwKICAgICAgdG9vbGJhcjogInVuZG8gcmVkbyB8IGJsb2NrcyBmb250c2l6 +ZWlucHV0IHwgYm9sZCBpdGFsaWMgdW5kZXJsaW5lIHN0cmlrZXRocm91Z2ggfCBmb3JlY29sb3Ig +YmFja2NvbG9yIHwgIiArCiAgICAgICAgImFsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0 +IGFsaWduanVzdGlmeSB8IGJ1bGxpc3QgbnVtbGlzdCBvdXRkZW50IGluZGVudCB8IGJsb2NrcXVv +dGUgaHIgfCAiICsKICAgICAgICAibGluayBpbnRsaW5rIGltYWdlIGF0dGFjaHBkZiBtZWRpYSB0 +YWJsZSBjaGFybWFwIHwgcmVtb3ZlZm9ybWF0IHwgc2VhcmNocmVwbGFjZSB2aXN1YWxibG9ja3Mg +ZnVsbHNjcmVlbiBjb2RlIHwgaGVscCIsCiAgICAgIGJsb2NrX2Zvcm1hdHM6ICJBYnNhdHo9cDsg +w5xiZXJzY2hyaWZ0PWgyOyBad2lzY2hlbnRpdGVsPWgzOyBaaXRhdD1ibG9ja3F1b3RlIiwKICAg +ICAgcXVpY2tiYXJzX2luc2VydF90b29sYmFyOiBmYWxzZSwgcXVpY2tiYXJzX3NlbGVjdGlvbl90 +b29sYmFyOiAiYm9sZCBpdGFsaWMgfCBxdWlja2xpbmsiLAogICAgICBhdXRvbWF0aWNfdXBsb2Fk +czogdHJ1ZSwgcGFzdGVfZGF0YV9pbWFnZXM6IHRydWUsCiAgICAgIGltYWdlc191cGxvYWRfaGFu +ZGxlcjogZnVuY3Rpb24gKGJsb2JJbmZvKSB7CiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1 +bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgIFAudXBsb2FkQXNzZXQoYmxvYklu +Zm8uYmxvYigpLCBmdW5jdGlvbiAoZXJyLCByZXMpIHsKICAgICAgICAgICAgaWYgKGVycikgcmVq +ZWN0KHsgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgIlVwbG9hZCBmZWhsZ2VzY2hsYWdlbiIsIHJl +bW92ZTogdHJ1ZSB9KTsKICAgICAgICAgICAgZWxzZSByZXNvbHZlKHJlcy5wYXRoKTsKICAgICAg +ICAgIH0sIGJsb2JJbmZvLmZpbGVuYW1lKCkpOwogICAgICAgIH0pOwogICAgICB9LAogICAgICBz +ZXR1cDogZnVuY3Rpb24gKGVkKSB7CiAgICAgICAgZWQudWkucmVnaXN0cnkuYWRkQnV0dG9uKCJh +dHRhY2hwZGYiLCB7CiAgICAgICAgICB0ZXh0OiAiUERGIiwgdG9vbHRpcDogIlBERiBhbmjDpG5n +ZW4iLAogICAgICAgICAgb25BY3Rpb246IGZ1bmN0aW9uICgpIHsgcGlja0ZpbGUoImFwcGxpY2F0 +aW9uL3BkZiwucGRmIiwgZnVuY3Rpb24gKGYpIHsgaW5zZXJ0UGRmSW50byhlZCwgZik7IH0pOyB9 +CiAgICAgICAgfSk7CiAgICAgICAgZWQudWkucmVnaXN0cnkuYWRkQnV0dG9uKCJpbnRsaW5rIiwg +ewogICAgICAgICAgdGV4dDogIuKGqiBQb3J0YWwiLCB0b29sdGlwOiAiSW50ZXJuZXIgTGluayAo +YXVmIFBvcnRhbC1JbmhhbHQpIiwKICAgICAgICAgIG9uQWN0aW9uOiBmdW5jdGlvbiAoKSB7IGlm +IChQLm9wZW5OYXZQaWNrZXIpIFAub3Blbk5hdlBpY2tlcihmdW5jdGlvbiAocikgeyBlZC5pbnNl +cnRDb250ZW50KCc8YSBocmVmPSJwb3J0YWw6JyArIHIuX2lkICsgJyI+JyArIGVzY2FwZUh0bWwo +ci5sYWJlbCkgKyAiPC9hPiIpOyB9KTsgfQogICAgICAgIH0pOwogICAgICAgIGVkLm9uKCJpbml0 +IiwgZnVuY3Rpb24gKCkgeyB0bWNlRWRpdG9yID0gZWQ7IHZhciB3ID0gJCgiI2FydC13eXNpd3ln +Iik7IGlmICh3KSB3LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IGNiKGVkKTsgfSk7CiAgICAgIH0K +ICAgIH0pOwogIH0KICBmdW5jdGlvbiBpbnNlcnRQZGZJbnRvKGVkLCBmaWxlKSB7CiAgICBQLnRv +YXN0KCJQREYgd2lyZCBob2NoZ2VsYWRlbuKApiIpOwogICAgUC51cGxvYWRBc3NldChmaWxlLCBm +dW5jdGlvbiAoZXJyLCByZXMpIHsKICAgICAgaWYgKGVycikgeyBQLnRvYXN0KGVyci5tZXNzYWdl +IHx8ICJVcGxvYWQgZmVobGdlc2NobGFnZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICBlZC5p +bnNlcnRDb250ZW50KCc8ZmlndXJlIGNsYXNzPSJlbWJlZCBwZGYiIGRhdGEtc3JjPSInICsgcmVz +LnBhdGggKyAnIiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj4nICsKICAgICAgICAnPHNwYW4gY2xh +c3M9InBkZi1uYW1lIj4nICsgZXNjYXBlSHRtbChmaWxlLm5hbWUpICsgJzwvc3Bhbj4nICsKICAg +ICAgICAnPHNwYW4gY2xhc3M9InBkZi1tZXRhIj5QREYgwrcga2xpY2tlbiB6dW0gVmVyZ3LDtnNz +ZXJuPC9zcGFuPjwvZmlndXJlPjxwPiZuYnNwOzwvcD4nKTsKICAgICAgUC50b2FzdCgiUERGIGFu +Z2Vow6RuZ3QuIik7CiAgICB9LCBmaWxlLm5hbWUpOwogIH0KCiAgLy8gV2FuZGVsdCBuYWNrdGUg +PGltZz4gaW4gdW5zZXJlIFRodW1ibmFpbC0vTW9kYWwtRW1iZWRzIChmaWd1cmUuZW1iZWQuaW1n +KS4KICBmdW5jdGlvbiBub3JtYWxpemVFbWJlZHMoaHRtbCkgewogICAgdmFyIGJveCA9IGVsKCJk +aXYiKTsgYm94LmlubmVySFRNTCA9IGh0bWwgfHwgIiI7CiAgICBQLiQkKCJpbWciLCBib3gpLmZv +ckVhY2goZnVuY3Rpb24gKGltZykgewogICAgICBpZiAoaW1nLmNsb3Nlc3QgJiYgaW1nLmNsb3Nl +c3QoImZpZ3VyZS5lbWJlZCIpKSByZXR1cm47CiAgICAgIHZhciBmaWcgPSBlbCgiZmlndXJlIiwg +eyBjbGFzczogImVtYmVkIGltZyIgfSk7CiAgICAgIHZhciBpbSA9IGVsKCJpbWciLCB7IHNyYzog +aW1nLmdldEF0dHJpYnV0ZSgic3JjIikgfHwgIiIgfSk7CiAgICAgIGlmIChpbWcuZ2V0QXR0cmli +dXRlKCJhbHQiKSkgaW0uc2V0QXR0cmlidXRlKCJhbHQiLCBpbWcuZ2V0QXR0cmlidXRlKCJhbHQi +KSk7CiAgICAgIGltZy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChmaWcsIGltZyk7IGZpZy5hcHBl +bmRDaGlsZChpbSk7CiAgICB9KTsKICAgIHJldHVybiBib3guaW5uZXJIVE1MOwogIH0KCiAgLy8g +TGVzZW4vU2NocmVpYmVuIHVuYWJoYWVuZ2lnIHZvbiBkZXIgYWt0aXZlbiBFbmdpbmUuCiAgZnVu +Y3Rpb24gYXJ0R2V0SHRtbCgpIHsgcmV0dXJuIHRtY2VFZGl0b3IgPyB0bWNlRWRpdG9yLmdldENv +bnRlbnQoKSA6ICQoIiNhcnQtYm9keSIpLmlubmVySFRNTDsgfQogIGZ1bmN0aW9uIGFydFNldEh0 +bWwoaCkgewogICAgaWYgKHRtY2VFZGl0b3IpIHsgdmFyIHcgPSAkKCIjYXJ0LXd5c2l3eWciKTsg +aWYgKHcpIHcuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgdG1jZUVkaXRvci5zZXRDb250ZW50KGgg +fHwgIiIpOyB9CiAgICBlbHNlIHsgdmFyIHcyID0gJCgiI2FydC13eXNpd3lnIik7IGlmICh3Mikg +dzIuc3R5bGUuZGlzcGxheSA9ICIiOyAkKCIjYXJ0LWJvZHkiKS5pbm5lckhUTUwgPSBoIHx8ICI8 +cD48L3A+IjsgaWYgKFAubGl2ZSAmJiB0bWNlUmVhZHkpIGluaXRUbWNlKGZ1bmN0aW9uICgpIHt9 +KTsgfQogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0gV1lTSVdZRyAqLwogIGZ1bmN0aW9uIGV4ZWMoY21kLCB2YWwpIHsg +JCgiI2FydC1ib2R5IikuZm9jdXMoKTsgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY21kLCBmYWxzZSwg +dmFsIHx8IG51bGwpOyB9CiAgZnVuY3Rpb24gaW5zZXJ0SHRtbChodG1sKSB7ICQoIiNhcnQtYm9k +eSIpLmZvY3VzKCk7IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbnNlcnRIVE1MIiwgZmFsc2UsIGh0 +bWwpOyB9CgogIC8vIHZlcnN0ZWNrdGVzIERhdGVpLUF1c3dhaGwtRmVsZCAoZWlubWFsaWcgZXJ6 +ZXVndCksIGplIG5hY2ggVHlwIHdpZWRlcnZlcndlbmRldAogIHZhciBmaWxlSW5wdXQ7CiAgZnVu +Y3Rpb24gcGlja0ZpbGUoYWNjZXB0LCBvbkZpbGUpIHsKICAgIGlmICghZmlsZUlucHV0KSB7IGZp +bGVJbnB1dCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogImZpbGUiIH0pOyBmaWxlSW5wdXQuc3R5bGUu +ZGlzcGxheSA9ICJub25lIjsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmaWxlSW5wdXQpOyB9 +CiAgICBmaWxlSW5wdXQudmFsdWUgPSAiIjsgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgiYWNjZXB0 +IiwgYWNjZXB0KTsKICAgIGZpbGVJbnB1dC5vbmNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7IHZhciBm +ID0gZS50YXJnZXQuZmlsZXNbMF07IGlmIChmKSBvbkZpbGUoZik7IH07CiAgICBmaWxlSW5wdXQu +Y2xpY2soKTsKICB9CgogIGZ1bmN0aW9uIGluc2VydEltYWdlKGZpbGUpIHsKICAgIFAudG9hc3Qo +IkJpbGQgd2lyZCBob2NoZ2VsYWRlbuKApiIpOwogICAgUC51cGxvYWRBc3NldChmaWxlLCBmdW5j +dGlvbiAoZXJyLCByZXMpIHsKICAgICAgaWYgKGVycikgeyBQLnRvYXN0KGVyci5tZXNzYWdlIHx8 +ICJVcGxvYWQgZmVobGdlc2NobGFnZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICB2YXIgYWx0 +ID0gKGZpbGUubmFtZSB8fCAiQmlsZCIpLnJlcGxhY2UoL1wuW2EtejAtOV0rJC9pLCAiIik7CiAg +ICAgIGluc2VydEh0bWwoJzxmaWd1cmUgY2xhc3M9ImVtYmVkIGltZyIgY29udGVudGVkaXRhYmxl +PSJmYWxzZSI+PGltZyBzcmM9IicgKyByZXMucGF0aCArICciIGFsdD0iJyArIGVzY2FwZUh0bWwo +YWx0KSArICciPjwvZmlndXJlPjxwPjxicj48L3A+Jyk7CiAgICAgIFAudG9hc3QoIkJpbGQgZWlu +Z2Vmw7xndCDigJQgS2xpY2sgaW0gQXJ0aWtlbCB6ZWlndCBlcyBncm9zcy4iKTsKICAgIH0pOwog +IH0KICBmdW5jdGlvbiBpbnNlcnRQZGYoZmlsZSkgewogICAgUC50b2FzdCgiUERGIHdpcmQgaG9j +aGdlbGFkZW7igKYiKTsKICAgIFAudXBsb2FkQXNzZXQoZmlsZSwgZnVuY3Rpb24gKGVyciwgcmVz +KSB7CiAgICAgIGlmIChlcnIpIHsgUC50b2FzdChlcnIubWVzc2FnZSB8fCAiVXBsb2FkIGZlaGxn +ZXNjaGxhZ2VuLiIsIHRydWUpOyByZXR1cm47IH0KICAgICAgdmFyIG5hbWUgPSBmaWxlLm5hbWUg +fHwgIkRva3VtZW50LnBkZiI7CiAgICAgIGluc2VydEh0bWwoJzxmaWd1cmUgY2xhc3M9ImVtYmVk +IHBkZiIgZGF0YS1zcmM9IicgKyByZXMucGF0aCArICciIGNvbnRlbnRlZGl0YWJsZT0iZmFsc2Ui +PicgKwogICAgICAgICc8c3BhbiBjbGFzcz0icGRmLW5hbWUiPicgKyBlc2NhcGVIdG1sKG5hbWUp +ICsgJzwvc3Bhbj4nICsKICAgICAgICAnPHNwYW4gY2xhc3M9InBkZi1tZXRhIj5QREYgwrcga2xp +Y2tlbiB6dW0gVmVyZ3LDtnNzZXJuPC9zcGFuPjwvZmlndXJlPjxwPjxicj48L3A+Jyk7CiAgICAg +IFAudG9hc3QoIlBERiBhbmdlaMOkbmd0IOKAlCBLbGljayBpbSBBcnRpa2VsIMO2ZmZuZXQgZXMg +Z3Jvc3MuIik7CiAgICB9KTsKICB9CgogIC8vIEVpbmbDvGdlbiBhdXMgV2ViL091dGxvb2s6IEhU +TUwgc8OkdWJlcm4gKFNhbml0aXplciksIEJpbGRlciBhdXMgZGVyCiAgLy8gWndpc2NoZW5hYmxh +Z2UgaG9jaGxhZGVuLCBzb25zdCBLbGFydGV4dCBtaXQgQWJzw6R0emVuIMO8YmVybmVobWVuLgog +IGZ1bmN0aW9uIGhhbmRsZVBhc3RlKGUpIHsKICAgIHZhciBjYiA9IGUuY2xpcGJvYXJkRGF0YSB8 +fCB3aW5kb3cuY2xpcGJvYXJkRGF0YTsgaWYgKCFjYikgcmV0dXJuOwogICAgdmFyIGl0ZW1zID0g +Y2IuaXRlbXMgfHwgW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsr +KSB7CiAgICAgIGlmIChpdGVtc1tpXS5raW5kID09PSAiZmlsZSIgJiYgL15pbWFnZVwvLy50ZXN0 +KGl0ZW1zW2ldLnR5cGUpKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyB2YXIgZiA9IGl0 +ZW1zW2ldLmdldEFzRmlsZSgpOyBpZiAoZikgaW5zZXJ0SW1hZ2UoZik7IHJldHVybjsKICAgICAg +fQogICAgfQogICAgdmFyIGh0bWwgPSBjYi5nZXREYXRhKCJ0ZXh0L2h0bWwiKSwgdGV4dCA9IGNi +LmdldERhdGEoInRleHQvcGxhaW4iKTsKICAgIGlmIChodG1sKSB7IGUucHJldmVudERlZmF1bHQo +KTsgaW5zZXJ0SHRtbChQLnNhbml0aXplSHRtbChodG1sKSk7IH0KICAgIGVsc2UgaWYgKHRleHQp +IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBpbnNlcnRIdG1sKHRleHRUb0h0bWwodGV4dCkpOyB9CiAg +fQogIGZ1bmN0aW9uIHRleHRUb0h0bWwodCkgewogICAgcmV0dXJuIFN0cmluZyh0KS5zcGxpdCgv +XG57Mix9LykubWFwKGZ1bmN0aW9uIChwKSB7CiAgICAgIHJldHVybiAiPHA+IiArIGVzY2FwZUh0 +bWwocCkucmVwbGFjZSgvXG4vZywgIjxicj4iKSArICI8L3A+IjsKICAgIH0pLmpvaW4oIiIpOwog +IH0KCiAgZnVuY3Rpb24gYnVpbGRUb29sYmFyKCkgewogICAgdmFyIGJhciA9ICQoIiNhcnQtdG9v +bHMiKTsgaWYgKGJhci5kYXRhc2V0LmJ1aWx0KSByZXR1cm47IGJhci5kYXRhc2V0LmJ1aWx0ID0g +IjEiOwogICAgdmFyIGJ0bnMgPSBbCiAgICAgIHsgY21kOiAiYm9sZCIsIGljOiAiYm9sZCIsIHQ6 +ICJGZXR0IChTdHJnK0IpIiB9LAogICAgICB7IGNtZDogIml0YWxpYyIsIGljOiAiaXRhbGljIiwg +dDogIkt1cnNpdiAoU3RyZytJKSIgfSwKICAgICAgeyBjbWQ6ICJ1bmRlcmxpbmUiLCB0OiAiVW50 +ZXJzdHJpY2hlbiIsIGxhYmVsOiAiVSIgfSwKICAgICAgeyBjbWQ6ICJzdHJpa2VUaHJvdWdoIiwg +dDogIkR1cmNoZ2VzdHJpY2hlbiIsIGxhYmVsOiAiUyIgfSwKICAgICAgeyBzZXA6IDEgfSwKICAg +ICAgeyBibG9jazogIkgyIiwgdDogIsOcYmVyc2NocmlmdCBncm9zcyIsIGxhYmVsOiAiSDIiIH0s +CiAgICAgIHsgYmxvY2s6ICJIMyIsIGljOiAiaGVhZGluZyIsIHQ6ICLDnGJlcnNjaHJpZnQiIH0s +CiAgICAgIHsgYmxvY2s6ICJCTE9DS1FVT1RFIiwgdDogIlppdGF0IiwgbGFiZWw6ICLinZ0iIH0s +CiAgICAgIHsgY21kOiAiaW5zZXJ0VW5vcmRlcmVkTGlzdCIsIGljOiAidWxpc3QiLCB0OiAiQXVm +esOkaGx1bmciIH0sCiAgICAgIHsgY21kOiAiaW5zZXJ0T3JkZXJlZExpc3QiLCBpYzogIm9saXN0 +IiwgdDogIk51bW1lcmllcnRlIExpc3RlIiB9LAogICAgICB7IHNlcDogMSB9LAogICAgICB7IGxp +bms6IDEsIGljOiAibGluayIsIHQ6ICJMaW5rIGVpbmbDvGdlbiIgfSwKICAgICAgeyBpbnRsaW5r +OiAxLCB0OiAiSW50ZXJuZXIgTGluayAoYXVmIFBvcnRhbC1JbmhhbHQpIiwgbGFiZWw6ICLihqoi +IH0sCiAgICAgIHsgaW1hZ2U6IDEsIGljOiAiYXJ0aWNsZSIsIHQ6ICJCaWxkIGVpbmbDvGdlbiIs +IGxhYmVsOiAi8J+WvCIgfSwKICAgICAgeyBwZGY6IDEsIGljOiAiZG9jIiwgdDogIlBERiBhbmjD +pG5nZW4iIH0sCiAgICAgIHsgc2VwOiAxIH0sCiAgICAgIHsgY21kOiAicmVtb3ZlRm9ybWF0Iiwg +aWM6ICJ4IiwgdDogIkZvcm1hdGllcnVuZyBlbnRmZXJuZW4iIH0KICAgIF07CiAgICBidG5zLmZv +ckVhY2goZnVuY3Rpb24gKGIpIHsKICAgICAgaWYgKGIuc2VwKSB7IGJhci5hcHBlbmRDaGlsZChl +bCgic3BhbiIsIHsgY2xhc3M6ICJ3eS1zZXAiIH0pKTsgcmV0dXJuOyB9CiAgICAgIHZhciBidG4g +PSBlbCgiYnV0dG9uIiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJ3eS1idG4iLCB0aXRsZTog +Yi50LAogICAgICAgIGh0bWw6IGIubGFiZWwgPyAnPGIgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFs +Ij4nICsgYi5sYWJlbCArICI8L2I+IiA6IGljKGIuaWMpLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0 +aW9uICgpIHsKICAgICAgICAgIGlmIChiLmJsb2NrKSBleGVjKCJmb3JtYXRCbG9jayIsIGIuYmxv +Y2spOwogICAgICAgICAgZWxzZSBpZiAoYi5saW5rKSB7IHZhciB1ID0gcHJvbXB0KCJMaW5rLVpp +ZWwgKFVSTCBvZGVyIGRva3VtZW50ZS/igKYpOiIsICJodHRwczovLyIpOyBpZiAodSkgZXhlYygi +Y3JlYXRlTGluayIsIHUpOyB9CiAgICAgICAgICBlbHNlIGlmIChiLmludGxpbmspIHsgaWYgKFAu +b3Blbk5hdlBpY2tlcikgUC5vcGVuTmF2UGlja2VyKGZ1bmN0aW9uIChyKSB7IGluc2VydEh0bWwo +JzxhIGhyZWY9InBvcnRhbDonICsgci5faWQgKyAnIj4nICsgZXNjYXBlSHRtbChyLmxhYmVsKSAr +ICI8L2E+Iik7IH0pOyB9CiAgICAgICAgICBlbHNlIGlmIChiLmltYWdlKSBwaWNrRmlsZSgiaW1h +Z2UvKiIsIGluc2VydEltYWdlKTsKICAgICAgICAgIGVsc2UgaWYgKGIucGRmKSBwaWNrRmlsZSgi +YXBwbGljYXRpb24vcGRmLC5wZGYiLCBpbnNlcnRQZGYpOwogICAgICAgICAgZWxzZSBleGVjKGIu +Y21kKTsKICAgICAgICB9IH0pOwogICAgICBiYXIuYXBwZW5kQ2hpbGQoYnRuKTsKICAgIH0pOwog +IH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0gRHJvcGRvd25zIGJlZsO8bGxlbiAqLwogIGZ1bmN0aW9uIGZpbGxTZWN0aW9u +U2VsZWN0KCkgewogICAgdmFyIHNlbCA9ICQoIiNhcnQtc2VjdGlvbiIpOyBzZWwuaW5uZXJIVE1M +ID0gIiI7CiAgICBQLk5BVi5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChzLCBpKSB7CiAgICAg +IHZhciB3aGVyZSA9IHMucGxhY2VtZW50ID09PSAic2lkZWJhciIgPyAiU2lkZWJhciIgOiAocy5r +aW5kID09PSAiYXoiID8gIkHigJNaIiA6ICJUb3BiYXIiKTsKICAgICAgc2VsLmFwcGVuZENoaWxk +KGVsKCJvcHRpb24iLCB7IHZhbHVlOiBpLCB0ZXh0OiBzLnRpdGxlICsgIiAgKCIgKyB3aGVyZSAr +ICIpIiB9KSk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gZmlsbFBhcmVudFNlbGVjdCgpIHsKICAg +IHZhciBzZWMgPSBQLk5BVi5zZWN0aW9uc1srJCgiI2FydC1zZWN0aW9uIikudmFsdWVdOwogICAg +dmFyIHNlbCA9ICQoIiNhcnQtcGFyZW50Iik7IHNlbC5pbm5lckhUTUwgPSAiIjsKICAgIHNlbC5h +cHBlbmRDaGlsZChlbCgib3B0aW9uIiwgeyB2YWx1ZTogIiIsIHRleHQ6ICLigJQgZGlyZWt0IGlu +IGRlbiBCZXJlaWNoIOKAlCIgfSkpOwogICAgaWYgKCFzZWMpIHJldHVybjsKICAgIChzZWMuaXRl +bXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0LCBpZHgpIHsKICAgICAgaWYgKGl0LmhlYWRp +bmcpIHJldHVybjsKICAgICAgLy8gYWxzIFVudGVybWVuw7wtRWx0ZXJuIGVpZ25lbiBzaWNoIEVp +bnRyw6RnZSBvaG5lIGVpZ2VuZXMgWmllbCBvZGVyIGJlc3RlaGVuZGUgR3J1cHBlbgogICAgICB2 +YXIgbGJsID0gaXQuY2hpbGRyZW4gPyAi4pa4ICIgKyBpdC5sYWJlbCArICIgKFVudGVybWVuw7wp +IiA6IGl0LmxhYmVsOwogICAgICBzZWwuYXBwZW5kQ2hpbGQoZWwoIm9wdGlvbiIsIHsgdmFsdWU6 +IGlkeCwgdGV4dDogbGJsIH0pKTsKICAgIH0pOwogICAgc2VsLmFwcGVuZENoaWxkKGVsKCJvcHRp +b24iLCB7IHZhbHVlOiAiX19uZXdfXyIsIHRleHQ6ICLinpUgTmV1ZXMgVW50ZXJtZW7DvCBoaWVy +IGFubGVnZW7igKYiIH0pKTsKICB9CgogIC8qIEthdGVnb3JpZW4gZW50ZmVybnQg4oCUIGtlaW4g +S2F0ZWdvcmllLVBpY2tlciBtZWhyLiAqLwogIFAuX2ZpbGxQYXJlbnQgPSBmaWxsUGFyZW50U2Vs +ZWN0OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLSBadXNhdHpmZWxkZXIgKGRhdGVuZ2V0cmllYmVuLCBQLkFSVElDTEVfRklF +TERTKSAqLwogIGZ1bmN0aW9uIHJlbmRlckFydGljbGVGaWVsZHMoYSkgewogICAgdmFyIGhvc3Qg +PSAkKCIjYXJ0LWV4dHJhIik7IGlmICghaG9zdCkgcmV0dXJuOwogICAgaG9zdC5pbm5lckhUTUwg +PSAiIjsKICAgIChQLkFSVElDTEVfRklFTERTIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChmKSB7 +CiAgICAgIHZhciB2YWwgPSBhID8gYVtmLmtleV0gOiAiIjsKICAgICAgdmFyIGZpZWxkID0gZWwo +ImRpdiIsIHsgY2xhc3M6ICJmaWVsZCIgfSk7CiAgICAgIGZpZWxkLmFwcGVuZENoaWxkKGVsKCJs +YWJlbCIsIHsgdGV4dDogZi5sYWJlbCB9KSk7CiAgICAgIHZhciBpbnA7CiAgICAgIGlmIChmLnR5 +cGUgPT09ICJzZWxlY3QiKSB7CiAgICAgICAgaW5wID0gZWwoInNlbGVjdCIsIHsgImRhdGEtZmtl +eSI6IGYua2V5IH0pOwogICAgICAgIChmLm9wdGlvbnMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24g +KG8pIHsKICAgICAgICAgIHZhciBvcCA9IGVsKCJvcHRpb24iLCB7IHZhbHVlOiBvLCB0ZXh0OiBv +IH0pOwogICAgICAgICAgaWYgKCh2YWwgfHwgZi5vcHRpb25zWzBdKSA9PT0gbykgb3Auc2VsZWN0 +ZWQgPSB0cnVlOwogICAgICAgICAgaW5wLmFwcGVuZENoaWxkKG9wKTsKICAgICAgICB9KTsKICAg +ICAgfSBlbHNlIHsKICAgICAgICB2YXIgdCA9IChmLnR5cGUgPT09ICJkYXRlIikgPyAiZGF0ZSIg +OiAidGV4dCI7CiAgICAgICAgdmFyIHYgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwuam9pbigi +LCAiKSA6ICh2YWwgfHwgIiIpOwogICAgICAgIGlmIChmLnR5cGUgPT09ICJkYXRlIikgdiA9IFN0 +cmluZyh2KS5zbGljZSgwLCAxMCk7CiAgICAgICAgaW5wID0gZWwoImlucHV0IiwgeyB0eXBlOiB0 +LCAiZGF0YS1ma2V5IjogZi5rZXksIHZhbHVlOiB2IH0pOwogICAgICB9CiAgICAgIGZpZWxkLmFw +cGVuZENoaWxkKGlucCk7IGhvc3QuYXBwZW5kQ2hpbGQoZmllbGQpOwogICAgfSk7CiAgfQogIGZ1 +bmN0aW9uIGNvbGxlY3RBcnRpY2xlRmllbGRzKHRhcmdldCkgewogICAgKFAuQVJUSUNMRV9GSUVM +RFMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGYpIHsKICAgICAgdmFyIGlucCA9ICQoIiNhcnQt +ZXh0cmEgW2RhdGEtZmtleT0nIiArIGYua2V5ICsgIiddIik7IGlmICghaW5wKSByZXR1cm47CiAg +ICAgIHZhciB2ID0gKGlucC52YWx1ZSB8fCAiIikudHJpbSgpOwogICAgICBpZiAoZi50eXBlID09 +PSAidGFncyIpIHsKICAgICAgICB2YXIgYXJyID0gdi5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbiAo +cykgeyByZXR1cm4gcy50cmltKCk7IH0pLmZpbHRlcihCb29sZWFuKTsKICAgICAgICBpZiAoYXJy +Lmxlbmd0aCkgdGFyZ2V0W2Yua2V5XSA9IGFycjsgZWxzZSBkZWxldGUgdGFyZ2V0W2Yua2V5XTsK +ICAgICAgfSBlbHNlIGlmIChmLmtleSA9PT0gImNsYXNzaWZpY2F0aW9uIikgewogICAgICAgIGlm +ICh2ICYmIHYgIT09ICJvZmZlbiIpIHRhcmdldFtmLmtleV0gPSB2OyBlbHNlIGRlbGV0ZSB0YXJn +ZXRbZi5rZXldOwogICAgICB9IGVsc2UgewogICAgICAgIGlmICh2KSB0YXJnZXRbZi5rZXldID0g +djsgZWxzZSBkZWxldGUgdGFyZ2V0W2Yua2V5XTsKICAgICAgfQogICAgfSk7CiAgfQogIC8vIEFy +dGlrZWwtT2JqZWt0IGF1cyBGb3JtdWxhciBiYXVlbiAoS2VybiArIFp1c2F0emZlbGRlciArIGF1 +dG8gJ3VwZGF0ZWQnKS4KICBmdW5jdGlvbiBidWlsZEFydGljbGUodGl0bGUsIGRhdGUsIGF1dGhv +ciwgaHRtbCkgewogICAgdmFyIGFydCA9IHsgdGl0bGU6IHRpdGxlLCBkYXRlOiBkYXRlLCBhdXRo +b3I6IGF1dGhvciwgaHRtbDogaHRtbCB9OwogICAgY29sbGVjdEFydGljbGVGaWVsZHMoYXJ0KTsK +ICAgIGFydC51cGRhdGVkID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTsK +ICAgIHJldHVybiBhcnQ7CiAgfQogIC8vIEltIExpdmUtTW9kdXMgZGVuIEJvZHkgaW4gZWluZSBl +aWdlbmUgRGF0ZWkgYXVzbGFnZXJuIChkYXRhLW5hdi5qcyBibGVpYnQgc2NobGFuayk7CiAgLy8g +aW0gZmlsZTovLy1FZGl0b3ItRmFsbGJhY2sgYmxlaWJ0IGRlciBCb2R5IGlubGluZS4gS25vdGVu +IG11c3MgZWluZSBfaWQgaGFiZW4uCiAgZnVuY3Rpb24gZXh0ZXJuYWxpemVCb2R5KG5vZGUsIGFy +dCkgewogICAgaWYgKFAubGl2ZSAmJiBub2RlICYmIG5vZGUuX2lkICYmIGFydCAmJiBhcnQuaHRt +bCAhPSBudWxsICYmIFAucGVyc2lzdEFydGljbGVCb2R5KSB7CiAgICAgIFAucGVyc2lzdEFydGlj +bGVCb2R5KG5vZGUuX2lkLCBhcnQuaHRtbCk7CiAgICAgIGRlbGV0ZSBhcnQuaHRtbDsgYXJ0LmJv +ZHlFeHQgPSB0cnVlOwogICAgfQogICAgcmV0dXJuIGFydDsKICB9CgogIC8qIC0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERpYWxvZyDD +tmZmbmVuICovCiAgUC5vcGVuQXJ0aWNsZURsZyA9IGZ1bmN0aW9uIChleGlzdGluZykgewogICAg +YnVpbGRUb29sYmFyKCk7CiAgICB2YXIgYm9keSA9ICQoIiNhcnQtYm9keSIpOwogICAgaWYgKCFi +b2R5LmRhdGFzZXQucGFzdGVCb3VuZCkgeyBib2R5LmRhdGFzZXQucGFzdGVCb3VuZCA9ICIxIjsg +Ym9keS5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsIGhhbmRsZVBhc3RlKTsgfQogICAgZWRpdGlu +ZyA9IGV4aXN0aW5nIHx8IG51bGw7CiAgICBpblBsYWNlID0gISEocGVuZGluZ01pZyAmJiBlZGl0 +aW5nKTsgICAgICAgICAgICAgIC8vIE1pZ3JhdGlvbjogS25vdGVuIGluLXBsYWNlIHVtd2FuZGVs +bgogICAgdmFyIGEgPSBpblBsYWNlID8gcGVuZGluZ01pZyA6IChlZGl0aW5nID8gZWRpdGluZy5h +cnRpY2xlIDogbnVsbCk7CiAgICBtaWdTb3VyY2UgPSAoaW5QbGFjZSAmJiBhICYmIGEuc3JjKSB8 +fCAiIjsgICAgICAgIC8vIFF1ZWxsZSBmdWVyIGRpZSBzcGFldGVyZSBfbWlnU291cmNlLU1hcmtp +ZXJ1bmcKICAgIHBlbmRpbmdNaWcgPSBudWxsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgLy8gZWlubWFsaWcga29uc3VtaWVydAogICAgJCgiI2FkLXRpdGxlIikudGV4dENvbnRlbnQg +PSBpblBsYWNlID8gIkRva3VtZW50IG1pZ3JpZXJlbiIgOiAoZWRpdGluZyA/ICJBcnRpa2VsIGJl +YXJiZWl0ZW4iIDogIk5ldWVuIEFydGlrZWwgYW5sZWdlbiIpOwogICAgZmlsbFNlY3Rpb25TZWxl +Y3QoKTsKICAgIC8vIGJlaSBCZWFyYmVpdHVuZzogU2VrdGlvbi9QYXJlbnQgZGVzIEVpbnRyYWdz +IHZvcnfDpGhsZW4KICAgIGlmIChlZGl0aW5nKSB7IHZhciBsb2MgPSBsb2NhdGUoZWRpdGluZyk7 +IGlmIChsb2MpIHsgJCgiI2FydC1zZWN0aW9uIikudmFsdWUgPSBsb2Muc2k7IH0gfQogICAgZmls +bFBhcmVudFNlbGVjdCgpOwogICAgaWYgKGVkaXRpbmcpIHsgdmFyIGxvYzIgPSBsb2NhdGUoZWRp +dGluZyk7IGlmIChsb2MyICYmIGxvYzIucGkgIT0gbnVsbCkgJCgiI2FydC1wYXJlbnQiKS52YWx1 +ZSA9IGxvYzIucGk7IH0KICAgIC8vIEluLVBsYWNlOiBrdXJhdGllcnRlcyBOYXYtTGFiZWwgYWxz +IFRpdGVsIGJldm9yenVnZW4gKHNvbnN0IGRlciBrb252ZXJ0aWVydGUgVGl0ZWwpLgogICAgJCgi +I2FydC1mLXRpdGxlIikudmFsdWUgPSAoaW5QbGFjZSAmJiBlZGl0aW5nICYmIGVkaXRpbmcubGFi +ZWwpID8gZWRpdGluZy5sYWJlbCA6IChhID8gYS50aXRsZSA6ICIiKTsKICAgICQoIiNhcnQtZi1k +YXRlIikudmFsdWUgPSBhID8gU3RyaW5nKGEuZGF0ZSB8fCAiIikuc2xpY2UoMCwgMTApIDogbmV3 +IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTsKICAgICQoIiNhcnQtZi1hdXRob3Ii +KS52YWx1ZSA9IGEgPyAoYS5hdXRob3IgfHwgIiIpIDogIiI7CiAgICByZW5kZXJBcnRpY2xlRmll +bGRzKGEpOwogICAgaWYgKGEgJiYgYS5ib2R5RXh0ICYmIChhLmh0bWwgPT0gbnVsbCB8fCBhLmh0 +bWwgPT09ICIiKSAmJiBlZGl0aW5nICYmIFAubG9hZEFydGljbGVCb2R5KSB7CiAgICAgIGFydFNl +dEh0bWwoIiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhdXNnZWxhZ2Vy +dGVuIEJvZHkgZXJzdCBuYWNobGFkZW4KICAgICAgUC5sb2FkQXJ0aWNsZUJvZHkoZWRpdGluZy5f +aWQsIGZ1bmN0aW9uIChoKSB7IGFydFNldEh0bWwoUC5zYW5pdGl6ZUh0bWwoaCB8fCAiIikpOyB9 +KTsKICAgIH0gZWxzZSB7CiAgICAgIGFydFNldEh0bWwoYSA/IFAuc2FuaXRpemVIdG1sKGEuaHRt +bCB8fCAiIikgOiAiIik7CiAgICB9CiAgICAkKCIjYXJ0LWVyciIpLmhpZGRlbiA9IHRydWU7CiAg +ICAkKCIjYXJ0LWRlbCIpLnN0eWxlLmRpc3BsYXkgPSAoZWRpdGluZyAmJiAhaW5QbGFjZSkgPyAi +IiA6ICJub25lIjsKICAgICQoIiNhcnQtZGxnIikuc2hvd01vZGFsKCk7CiAgICBzZXRUaW1lb3V0 +KGZ1bmN0aW9uICgpIHsgJCgiI2FydC1mLXRpdGxlIikuZm9jdXMoKTsgfSwgMzApOwogIH07Cgog +IC8qIEluLVBsYWNlLU1pZ3JhdGlvbjogZWluZW4gYmVzdGVoZW5kZW4gaHJlZi1Lbm90ZW4gKHpl +aWd0IGF1ZiBlaW5lIEFsdC1Eb2t1KQogICAgIGFtIHNlbGJlbiBOYXYtUGxhdHogenVtIEFydGlr +ZWwgbWFjaGVuLiBEYXMga29udmVydGllcnRlIEhUTUwgZHVyY2hsw6R1ZnQKICAgICBkZW5zZWxi +ZW4gU2FuaXRpemVyLS9TcGVpY2hlci1QZmFkIHdpZSBqZWRlciBhbmRlcmUgRWRpdG9yLUluaGFs +dC4gKi8KICBQLm9wZW5NaWdyYXRpb25FZGl0b3IgPSBmdW5jdGlvbiAobmF2SXRlbSwgYXJ0KSB7 +CiAgICBpZiAoIW5hdkl0ZW0pIHJldHVybjsKICAgIHBlbmRpbmdNaWcgPSBhcnQgfHwgeyB0aXRs +ZTogbmF2SXRlbS5sYWJlbCB8fCAiIiwgZGF0ZTogIiIsIGF1dGhvcjogIiIsIGh0bWw6ICIiIH07 +CiAgICBQLm9wZW5BcnRpY2xlRGxnKG5hdkl0ZW0pOwogIH07CgogIC8qIFVJLWZyZWllIEluLVBs +YWNlLU1pZ3JhdGlvbiAoZnVlciBkaWUgU3RhcGVsLVVlYmVybmFobWUpOiBkZW5zZWxiZW4gS25v +dGVuIHdpZSBkZXIKICAgICBFZGl0b3ItUGZhZCB1bXdhbmRlbG4sIGFiZXIgT0hORSBEaWFsb2cg +dW5kIE9ITkUgcGVyc2lzdC9wdWJsaXNoIChkZXIgQXVmcnVmZXIgYnVlbmRlbHQpLgogICAgIEhU +TUwgbGFldWZ0IGR1cmNoIFAuc2FuaXRpemVIdG1sOyBadXNhdHpmZWxkZXIgKFAuQVJUSUNMRV9G +SUVMRFMpICsgJ3VwZGF0ZWQnIHdlcmRlbiB1ZWJlcm5vbW1lbi4gKi8KICBQLm1pZ3JhdGVJblBs +YWNlID0gZnVuY3Rpb24gKG5hdkl0ZW0sIGFydCkgewogICAgaWYgKCFuYXZJdGVtIHx8ICFhcnQp +IHJldHVybiBudWxsOwogICAgZGVsZXRlIG5hdkl0ZW0uaHJlZjsgZGVsZXRlIG5hdkl0ZW0udGFy +Z2V0OyBkZWxldGUgbmF2SXRlbS5jaGlsZHJlbjsKICAgIGlmICghbmF2SXRlbS5faWQpIG5hdkl0 +ZW0uX2lkID0gUC51aWQoImFydCIpOwogICAgaWYgKGFydC5zcmMpIG5hdkl0ZW0uX21pZ1NvdXJj +ZSA9IGFydC5zcmM7ICAgICAgIC8vIHN0YWJpbGUgWnVvcmRudW5nIFF1ZWxsZS0+bWlncmllcnRl +ciBLbm90ZW4KICAgIHZhciB0aXRsZSA9IG5hdkl0ZW0ubGFiZWwgfHwgYXJ0LnRpdGxlIHx8ICIi +OwogICAgdmFyIGEgPSB7IHRpdGxlOiB0aXRsZSwgZGF0ZTogYXJ0LmRhdGUgfHwgIiIsIGF1dGhv +cjogYXJ0LmF1dGhvciB8fCAiIiwgaHRtbDogUC5zYW5pdGl6ZUh0bWwoYXJ0Lmh0bWwgfHwgIiIp +IH07CiAgICAoUC5BUlRJQ0xFX0ZJRUxEUyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAoZikgewog +ICAgICB2YXIgdiA9IGFydFtmLmtleV07CiAgICAgIGlmICh2ICE9IG51bGwgJiYgdiAhPT0gIiIg +JiYgIShBcnJheS5pc0FycmF5KHYpICYmICF2Lmxlbmd0aCkpIGFbZi5rZXldID0gdjsKICAgIH0p +OwogICAgYS51cGRhdGVkID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTsK +ICAgIG5hdkl0ZW0ubGFiZWwgPSB0aXRsZTsKICAgIG5hdkl0ZW0uYXJ0aWNsZSA9IGV4dGVybmFs +aXplQm9keShuYXZJdGVtLCBhKTsgICAvLyBpbSBMaXZlLU1vZHVzIEJvZHkgYXVzbGFnZXJuIChT +dGFwZWwgYnVlbmRlbHQgMSBQdWJsaXNoKQogICAgcmV0dXJuIG5hdkl0ZW07CiAgfTsKCiAgLyog +SW4tUGxhY2UtTWlncmF0aW9uIGVpbmVyIE9yZG5lci1aZWlnZXItU2VpdGU6IGRlciBOYXYtS25v +dGVuIHdpcmQgenVtIE9yZG5lci1Lbm90ZW4KICAgICAob2VmZm5ldCBpbSBQb3J0YWwgZGllIFZl +cnplaWNobmlzLUFuc2ljaHQsIElFLU1vZHVzKS4gS2VpbiBBcnRpa2VsLCBrZWluIEJvZHksIGtl +aW4KICAgICBwZXJzaXN0L3B1Ymxpc2ggKEF1ZnJ1ZmVyIGJ1ZW5kZWx0KS4gUGZhZCB3aXJkIHVl +YmVyIFAuc2FmZUZvbGRlclBhdGggdmFsaWRpZXJ0LiAqLwogIFAubWlncmF0ZUZvbGRlckluUGxh +Y2UgPSBmdW5jdGlvbiAobmF2SXRlbSwgZm9sZGVyUGF0aCkgewogICAgaWYgKCFuYXZJdGVtKSBy +ZXR1cm4gbnVsbDsKICAgIHZhciBzYWZlID0gUC5zYWZlRm9sZGVyUGF0aChmb2xkZXJQYXRoIHx8 +ICIiKTsKICAgIGlmICghc2FmZSkgcmV0dXJuIG51bGw7CiAgICBkZWxldGUgbmF2SXRlbS5ocmVm +OyBkZWxldGUgbmF2SXRlbS50YXJnZXQ7IGRlbGV0ZSBuYXZJdGVtLmNoaWxkcmVuOyBkZWxldGUg +bmF2SXRlbS5hcnRpY2xlOwogICAgaWYgKCFuYXZJdGVtLl9pZCkgbmF2SXRlbS5faWQgPSBQLnVp +ZCgiZGlyIik7CiAgICBuYXZJdGVtLmZvbGRlciA9IHNhZmU7CiAgICByZXR1cm4gbmF2SXRlbTsK +ICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLSBQb3NpdGlvbiBlaW5lcyBiZXN0ZWhlbmRlbiBFaW50cmFncyBmaW5kZW4g +Ki8KICBmdW5jdGlvbiBsb2NhdGUoaXRlbSkgewogICAgZm9yICh2YXIgc2kgPSAwOyBzaSA8IFAu +TkFWLnNlY3Rpb25zLmxlbmd0aDsgc2krKykgewogICAgICB2YXIgaXRlbXMgPSBQLk5BVi5zZWN0 +aW9uc1tzaV0uaXRlbXMgfHwgW107CiAgICAgIGlmIChpdGVtcy5pbmRleE9mKGl0ZW0pID49IDAp +IHJldHVybiB7IHNpOiBzaSwgcGk6IG51bGwgfTsKICAgICAgZm9yICh2YXIgcGkgPSAwOyBwaSA8 +IGl0ZW1zLmxlbmd0aDsgcGkrKykgewogICAgICAgIGlmIChpdGVtc1twaV0uY2hpbGRyZW4gJiYg +aXRlbXNbcGldLmNoaWxkcmVuLmluZGV4T2YoaXRlbSkgPj0gMCkgcmV0dXJuIHsgc2k6IHNpLCBw +aTogcGkgfTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIG51bGw7CiAgfQoKICAvKiAtLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTcGVp +Y2hlcm4gKi8KICBQLnNhdmVBcnRpY2xlID0gZnVuY3Rpb24gKCkgewogICAgdmFyIHRpdGxlID0g +JCgiI2FydC1mLXRpdGxlIikudmFsdWUudHJpbSgpOwogICAgaWYgKCF0aXRsZSkgeyB2YXIgZSA9 +ICQoIiNhcnQtZXJyIik7IGUudGV4dENvbnRlbnQgPSAiVGl0ZWwgaXN0IGVyZm9yZGVybGljaC4i +OyBlLmhpZGRlbiA9IGZhbHNlOyByZXR1cm47IH0KICAgIHZhciBodG1sID0gUC5zYW5pdGl6ZUh0 +bWwobm9ybWFsaXplRW1iZWRzKGFydEdldEh0bWwoKSkpLnRyaW0oKTsKICAgIGlmICghaHRtbCB8 +fCBodG1sID09PSAiPHA+PC9wPiIgfHwgaHRtbCA9PT0gIjxwPjxicj48L3A+IikgeyB2YXIgZTIg +PSAkKCIjYXJ0LWVyciIpOyBlMi50ZXh0Q29udGVudCA9ICJCaXR0ZSBlaW5lbiBJbmhhbHQgZWlu +Z2ViZW4uIjsgZTIuaGlkZGVuID0gZmFsc2U7IHJldHVybjsgfQogICAgdmFyIGRhdGUgPSAkKCIj +YXJ0LWYtZGF0ZSIpLnZhbHVlLCBhdXRob3IgPSAkKCIjYXJ0LWYtYXV0aG9yIikudmFsdWUudHJp +bSgpOwoKICAgIC8vIEluLVBsYWNlLU1pZ3JhdGlvbjogS25vdGVuIGFuIHNlaW5lciBOYXYtUG9z +aXRpb24gYmVsYXNzZW4sIG51ciBJbmhhbHQKICAgIC8vIHVtd2FuZGVsbiAoaHJlZi90YXJnZXQg +cmF1cywgYXJ0aWNsZSByZWluKS4gVW1nZWh0IGRpZSBVbXNvcnRpZXItTG9naWsKICAgIC8vIChy +ZW1vdmVGcm9tICsgU2VrdGlvbi9QYXJlbnQtRHJvcGRvd25zKSBiZXd1c3N0IOKAlCBMYWJlbCB1 +bmQgUGxhdHogYmxlaWJlbi4KICAgIGlmIChpblBsYWNlICYmIGVkaXRpbmcpIHsKICAgICAgZGVs +ZXRlIGVkaXRpbmcuaHJlZjsgZGVsZXRlIGVkaXRpbmcudGFyZ2V0OyBkZWxldGUgZWRpdGluZy5j +aGlsZHJlbjsKICAgICAgaWYgKCFlZGl0aW5nLl9pZCkgZWRpdGluZy5faWQgPSBQLnVpZCgiYXJ0 +Iik7CiAgICAgIGVkaXRpbmcubGFiZWwgPSB0aXRsZTsKICAgICAgaWYgKG1pZ1NvdXJjZSkgZWRp +dGluZy5fbWlnU291cmNlID0gbWlnU291cmNlOyAgIC8vIHN0YWJpbGUgWnVvcmRudW5nIFF1ZWxs +ZS0+bWlncmllcnRlciBLbm90ZW4KICAgICAgbWlnU291cmNlID0gIiI7CiAgICAgIGVkaXRpbmcu +YXJ0aWNsZSA9IGV4dGVybmFsaXplQm9keShlZGl0aW5nLCBidWlsZEFydGljbGUodGl0bGUsIGRh +dGUsIGF1dGhvciwgaHRtbCkpOwogICAgICBpblBsYWNlID0gZmFsc2U7CiAgICAgIFAucGVyc2lz +dE5hdigpOyBQLmJ1aWxkSW5kZXgoKTsgUC5yZW5kZXJTaWRlYmFyKCk7ICAgLy8gcGVyc2lzdE5h +diAtPiBBdXRvLVB1Ymxpc2ggaW0gTGl2ZS1Nb2R1cwogICAgICAkKCIjYXJ0LWRsZyIpLmNsb3Nl +KCk7CiAgICAgIFAubmF2aWdhdGUoZWRpdGluZyk7CiAgICAgIFAudG9hc3QoUC5saXZlID8gIkRv +a3VtZW50IG1pZ3JpZXJ0ICYgdmVyw7ZmZmVudGxpY2h0LiIgOiAiRG9rdW1lbnQgbWlncmllcnQg +KGxva2FsZXIgRW50d3VyZikuIik7CiAgICAgIHZhciBtaWdyYXRlZCA9IGVkaXRpbmc7IGVkaXRp +bmcgPSBudWxsOwogICAgICBpZiAoUC5lbWl0KSBQLmVtaXQoIm1pZ3JhdGlvbjpkb25lIiwgbWln +cmF0ZWQpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIHNlYyA9IFAuTkFWLnNlY3Rpb25z +WyskKCIjYXJ0LXNlY3Rpb24iKS52YWx1ZV07CiAgICB2YXIgcGFyZW50VmFsID0gJCgiI2FydC1w +YXJlbnQiKS52YWx1ZTsKCiAgICAvLyBFaW50cmFnIGF1cyBiaXNoZXJpZ2VyIFBvc2l0aW9uIGVu +dGZlcm5lbiAoYmVpIEJlYXJiZWl0dW5nIC8gVW1zb3J0aWVydW5nKQogICAgaWYgKGVkaXRpbmcp +IHJlbW92ZUZyb20oZWRpdGluZyk7CgogICAgdmFyIGl0ZW0gPSBlZGl0aW5nIHx8IHsgX2lkOiBQ +LnVpZCgiYXJ0IikgfTsKICAgIGl0ZW0ubGFiZWwgPSB0aXRsZTsKICAgIGRlbGV0ZSBpdGVtLmNo +aWxkcmVuOyAvLyBBcnRpa2VsIHNpbmQgQmzDpHR0ZXIKICAgIGRlbGV0ZSBpdGVtLmhyZWY7IGRl +bGV0ZSBpdGVtLnRhcmdldDsKICAgIGl0ZW0uYXJ0aWNsZSA9IGV4dGVybmFsaXplQm9keShpdGVt +LCBidWlsZEFydGljbGUodGl0bGUsIGRhdGUsIGF1dGhvciwgaHRtbCkpOwoKICAgIC8vIGVpbnNv +cnRpZXJlbiDigJQgb3B0aW9uYWwgZWluIG5ldWVzIFVudGVybWVuw7wgKFN1Yi1Ecm9wZG93bikg +YW5sZWdlbgogICAgdmFyIHRhcmdldDsKICAgIGlmIChwYXJlbnRWYWwgPT09ICJfX25ld19fIikg +ewogICAgICB2YXIgc3ViTGFiZWwgPSBwcm9tcHQoIk5hbWUgZGVzIG5ldWVuIFVudGVybWVuw7xz +IChTdWItRHJvcGRvd24pOiIsICIiKTsKICAgICAgaWYgKHN1YkxhYmVsICYmIHN1YkxhYmVsLnRy +aW0oKSkgewogICAgICAgIHZhciBncnAgPSB7IGxhYmVsOiBzdWJMYWJlbC50cmltKCksIGNoaWxk +cmVuOiBbXSB9OwogICAgICAgIHNlYy5pdGVtcy5wdXNoKGdycCk7IHRhcmdldCA9IGdycC5jaGls +ZHJlbjsKICAgICAgfSBlbHNlIHsgdGFyZ2V0ID0gc2VjLml0ZW1zOyB9CiAgICB9IGVsc2UgaWYg +KHBhcmVudFZhbCAhPT0gIiIgJiYgc2VjLml0ZW1zWytwYXJlbnRWYWxdKSB7CiAgICAgIHRhcmdl +dCA9IGVuc3VyZUNoaWxkcmVuKHNlYy5pdGVtc1srcGFyZW50VmFsXSk7CiAgICB9IGVsc2Ugewog +ICAgICB0YXJnZXQgPSBzZWMuaXRlbXM7CiAgICB9CiAgICB0YXJnZXQucHVzaChpdGVtKTsKCiAg +ICB2YXIgd2FzRWRpdGluZyA9IGVkaXRpbmc7CiAgICBQLnBlcnNpc3ROYXYoKTsgUC5idWlsZElu +ZGV4KCk7IFAucmVuZGVyU2lkZWJhcigpOyAgIC8vIHBlcnNpc3ROYXYgdmVyw7ZmZmVudGxpY2h0 +IGJlaSBSZWRha3RldXJlbiBhdXRvbWF0aXNjaAogICAgJCgiI2FydC1kbGciKS5jbG9zZSgpOwog +ICAgUC5uYXZpZ2F0ZShpdGVtKTsKICAgIFAudG9hc3Qod2FzRWRpdGluZyA/IChQLmxpdmUgPyAi +QXJ0aWtlbCBha3R1YWxpc2llcnQgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICJBcnRpa2VsIGFrdHVh +bGlzaWVydCAobG9rYWxlciBFbnR3dXJmKS4iKSA6IChQLmxpdmUgPyAiQXJ0aWtlbCBnZXNwZWlj +aGVydCAmIHZlcsO2ZmZlbnRsaWNodC4iIDogIkFydGlrZWwgZ2VzcGVpY2hlcnQgKGxva2FsZXIg +RW50d3VyZikuIikpOwogICAgZWRpdGluZyA9IG51bGw7CiAgfTsKICBmdW5jdGlvbiBlbnN1cmVD +aGlsZHJlbihpdCkgeyBpZiAoIWl0LmNoaWxkcmVuKSB7IGl0LmNoaWxkcmVuID0gW107IH0gcmV0 +dXJuIGl0LmNoaWxkcmVuOyB9CiAgZnVuY3Rpb24gcmVtb3ZlRnJvbShpdGVtKSB7CiAgICBQLk5B +Vi5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7CiAgICAgIHZhciBpID0gKHMuaXRlbXMg +fHwgW10pLmluZGV4T2YoaXRlbSk7IGlmIChpID49IDApIHMuaXRlbXMuc3BsaWNlKGksIDEpOwog +ICAgICAocy5pdGVtcyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAocCkgeyBpZiAocC5jaGlsZHJl +bikgeyB2YXIgaiA9IHAuY2hpbGRyZW4uaW5kZXhPZihpdGVtKTsgaWYgKGogPj0gMCkgeyBwLmNo +aWxkcmVuLnNwbGljZShqLCAxKTsgaWYgKCFwLmNoaWxkcmVuLmxlbmd0aCkgZGVsZXRlIHAuY2hp +bGRyZW47IH0gfSB9KTsKICAgIH0pOwogIH0KICBQLmRlbGV0ZUFydGljbGUgPSBmdW5jdGlvbiAo +KSB7CiAgICBpZiAoIWVkaXRpbmcpIHJldHVybjsKICAgIHZhciBhcnQgPSBlZGl0aW5nOwogICAg +UC5jb25maXJtKCJBcnRpa2VsIOKAniIgKyBhcnQubGFiZWwgKyAi4oCcIHdpcmtsaWNoIGzDtnNj +aGVuPyIsIGZ1bmN0aW9uICgpIHsKICAgICAgcmVtb3ZlRnJvbShhcnQpOyBQLnBlcnNpc3ROYXYo +KTsgUC5idWlsZEluZGV4KCk7IFAucmVuZGVyU2lkZWJhcigpOyBQLmNsb3NlRG9jKCk7CiAgICAg +ICQoIiNhcnQtZGxnIikuY2xvc2UoKTsgUC50b2FzdCgiQXJ0aWtlbCBnZWzDtnNjaHQuIik7IGVk +aXRpbmcgPSBudWxsOyBpblBsYWNlID0gZmFsc2U7CiAgICB9LCB7IGRhbmdlcjogdHJ1ZSB9KTsK +ICB9OwoKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0gS29sbGFib3JhdGlvbnMtSG9va3MgKFBoYXNlIDQpCiAgICAgRXJsYXVi +ZW4gY29sbGFiLmpzLCBkZW4gQXJiZWl0c3N0YW5kIGRlcyBBcnRpa2VsLURpYWxvZ3MgenUgc2lj +aGVybiB1bmQKICAgICB3aWVkZXJoZXJ6dXN0ZWxsZW4sIG9obmUgZGllIEludGVybmEgYW56dWZh +c3Nlbi4gKi8KICBQLmFydGljbGVUYXJnZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBlZGl0aW5n +ID8gKCJhcnQ6IiArIChlZGl0aW5nLl9pZCB8fCBlZGl0aW5nLmxhYmVsKSkgOiAiYXJ0Om5ldyI7 +IH07CiAgUC5hcnRpY2xlTGFiZWwgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAoJCgiI2FydC1mLXRp +dGxlIikudmFsdWUgfHwgKGVkaXRpbmcgJiYgZWRpdGluZy5sYWJlbCkgfHwgIk5ldWVyIEFydGlr +ZWwiKTsgfTsKICBQLmFydGljbGVTbmFwc2hvdCA9IGZ1bmN0aW9uICgpIHsKICAgIHJldHVybiB7 +IHRpdGxlOiAkKCIjYXJ0LWYtdGl0bGUiKS52YWx1ZSwgZGF0ZTogJCgiI2FydC1mLWRhdGUiKS52 +YWx1ZSwgYXV0aG9yOiAkKCIjYXJ0LWYtYXV0aG9yIikudmFsdWUsCiAgICAgICAgICAgICBodG1s +OiBhcnRHZXRIdG1sKCksIHNlY3Rpb246ICQoIiNhcnQtc2VjdGlvbiIpLnZhbHVlLCBwYXJlbnQ6 +ICQoIiNhcnQtcGFyZW50IikudmFsdWUgfTsKICB9OwogIFAuYXJ0aWNsZUFwcGx5ID0gZnVuY3Rp +b24gKHMpIHsKICAgIGlmICghcykgcmV0dXJuOwogICAgJCgiI2FydC1mLXRpdGxlIikudmFsdWUg +PSBzLnRpdGxlIHx8ICIiOyAkKCIjYXJ0LWYtZGF0ZSIpLnZhbHVlID0gcy5kYXRlIHx8ICIiOyAk +KCIjYXJ0LWYtYXV0aG9yIikudmFsdWUgPSBzLmF1dGhvciB8fCAiIjsKICAgIGFydFNldEh0bWwo +cy5odG1sIHx8ICIiKTsKICAgIGlmIChzLnNlY3Rpb24gIT0gbnVsbCAmJiAkKCIjYXJ0LXNlY3Rp +b24iKS5vcHRpb25zLmxlbmd0aCkgeyAkKCIjYXJ0LXNlY3Rpb24iKS52YWx1ZSA9IHMuc2VjdGlv +bjsgZmlsbFBhcmVudFNlbGVjdCgpOyBpZiAocy5wYXJlbnQgIT0gbnVsbCkgJCgiI2FydC1wYXJl +bnQiKS52YWx1ZSA9IHMucGFyZW50OyB9CiAgfTsKCn0pKHdpbmRvdy5QKTsK +### FILE: assets/js/features/arztliste.js | 14807 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvYXJ6dGxpc3RlLmpz +CiAgIFJlZ2lzdGVyICJBcnp0IGFuZm9yZGVybiIgYWxzIGJyZWl0ZXMgTW9kYWwuIE5ldWVzdGUg +WmVpbGUgb2JlbiwKICAgRGF0dW0vVWhyemVpdCBhdXRvbWF0aXNjaCArIGdlc3BlcnJ0IChISDpN +TSkuIEF1dG92ZXJ2b2xsc3RhZW5kaWd1bmcgYXVzCiAgIGJpc2hlcmlnZW4gRWludHJhZWdlbi4g +U29mb3J0LVNwZWljaGVybiBwcm8gWmVpbGUgKFVwc2VydCAtPiBrZWluCiAgIFVlYmVyc2NocmVp +YmVuIHBhcmFsbGVsZXIgTnV0emVyKSBhdWYgZGVuIFNoYXJlIChIZWxmZXIgL2FwaS9hcnp0bGlz +dGUpLgogICBOdXIgZGVyIEVSU1RFTExFUiBlaW5lciBaZWlsZSAoYnp3LiBlaW4gQWRtaW4pIGth +bm4gc2llIGF1c2Z1ZWxsZW4vYWVuZGVybjsKICAgZWluIEFkbWluIGthbm4gWmVpbGVuIGxvZXNj +aGVuLiBCZWltIFNjaGxpZXNzZW4gbWl0IHVudm9sbHN0YWVuZGlnZXIgZWlnZW5lcgogICBaZWls +ZSAoU3BhbHRlbiAzLTgpIGVyc2NoZWludCBlaW5lIFJ1ZWNrZnJhZ2UuIFBERiAoRHJ1Y2spICsg +Q1NWLVNpY2hlcnVuZwogICBuYWNoIGRva3VtZW50ZS9EYXRlbnNpY2hlcnVuZyBtaXQgS2FwcGVu +IGF1ZiAxNCBUYWdlICgvYXBpL2FyenRiYWNrdXApLgogICBBdWZydWYgdWViZXIgS2xpY2sgYXVm +ICJBcnp0IGFuZm9yZGVybiIgKFBhbmVsL05hdiAtPiBQLm5hdmlnYXRlIC0+IEFwcC1Sb3V0ZSku +CiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFy +IGVsID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljOwoKICB2YXIgQ09MUyA9IFsKICAgIHsgazog +ImRhdHVtIiwgICAgIHQ6ICJEYXR1bSIsICAgICAgICAgICAgICAgICAgcm86IHRydWUgfSwKICAg +IHsgazogInplaXQiLCAgICAgIHQ6ICJVaHJ6ZWl0IiwgICAgICAgICAgICAgICAgcm86IHRydWUg +fSwKICAgIHsgazogImFyenQiLCAgICAgIHQ6ICJhbmdlZm9yZGVydGVyIEFyenQiLCAgICAgYWM6 +IHRydWUsIHJlcTogdHJ1ZSB9LAogICAgeyBrOiAic3RlbGxlIiwgICAgdDogImFuZm9yZGVybmRl +IFN0ZWxsZSIsICAgICBhYzogdHJ1ZSwgcmVxOiB0cnVlIH0sCiAgICB7IGs6ICJ3b2hpbiIsICAg +ICB0OiAid29oaW4iLCAgICAgICAgICAgICAgICAgIGFjOiB0cnVlLCByZXE6IHRydWUgfSwKICAg +IHsgazogImVycmVpY2h0IiwgIHQ6ICJlcnJlaWNodCDDvGJlciIsICAgICAgICAgIGFjOiB0cnVl +LCByZXE6IHRydWUgfSwKICAgIHsgazogInNiIiwgICAgICAgIHQ6ICJkdXJjaCBTQiIsICAgICAg +ICAgICAgICAgYWM6IHRydWUsIHJlcTogdHJ1ZSB9LAogICAgeyBrOiAiZ3J1bmQiLCAgICAgdDog +IkdydW5kIGRlciBBbmZvcmRlcnVuZyIsICBhYzogdHJ1ZSwgcmVxOiB0cnVlIH0sCiAgICB7IGs6 +ICJiZW1lcmt1bmciLCB0OiAic29uc3QuIEJlbWVya3VuZ2VuIiwgICAgIGFjOiBmYWxzZSB9CiAg +XTsKICB2YXIgUkVRID0gQ09MUy5maWx0ZXIoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMucmVxOyB9 +KS5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMuazsgfSk7CgogIHZhciBkYXRhID0gW107CiAg +dmFyIHRhYmxlSG9zdCA9IG51bGw7CiAgdmFyIHNhdmVUaW1lcnMgPSB7fTsKCiAgZnVuY3Rpb24g +cGFkKG4pIHsgcmV0dXJuIChuIDwgMTAgPyAiMCIgOiAiIikgKyBuOyB9CiAgZnVuY3Rpb24gbm93 +UGFydHMoKSB7CiAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CiAgICByZXR1cm4geyB0czogZC50b0lT +T1N0cmluZygpLAogICAgICBkYXR1bTogcGFkKGQuZ2V0RGF0ZSgpKSArICIuIiArIHBhZChkLmdl +dE1vbnRoKCkgKyAxKSArICIuIiArIGQuZ2V0RnVsbFllYXIoKSwKICAgICAgemVpdDogcGFkKGQu +Z2V0SG91cnMoKSkgKyAiOiIgKyBwYWQoZC5nZXRNaW51dGVzKCkpIH07CiAgfQogIGZ1bmN0aW9u +IHRzT2YoZSkgewogICAgaWYgKGUudHMpIHsgdmFyIHQgPSBEYXRlLnBhcnNlKGUudHMpOyBpZiAo +IWlzTmFOKHQpKSByZXR1cm4gdDsgfQogICAgdmFyIG0gPSAvXihcZHsyfSlcLihcZHsyfSlcLihc +ZHs0fSkkLy5leGVjKGUuZGF0dW0gfHwgIiIpOyB2YXIgeiA9IC9eKFxkezEsMn0pOihcZHsyfSkv +LmV4ZWMoZS56ZWl0IHx8ICIiKTsKICAgIHJldHVybiBtID8gbmV3IERhdGUoK21bM10sICttWzJd +IC0gMSwgK21bMV0sIHogPyArelsxXSA6IDAsIHogPyArelsyXSA6IDApLmdldFRpbWUoKSA6IDA7 +CiAgfQogIGZ1bmN0aW9uIHNvcnRlZCgpIHsgcmV0dXJuIGRhdGEuc2xpY2UoKS5zb3J0KGZ1bmN0 +aW9uIChhLCBiKSB7IHJldHVybiB0c09mKGIpIC0gdHNPZihhKTsgfSk7IH0KICBmdW5jdGlvbiBl +c2MocykgeyByZXR1cm4gU3RyaW5nKHMgPT0gbnVsbCA/ICIiIDogcykucmVwbGFjZSgvWyY8PiJd +L2csIGZ1bmN0aW9uIChjKSB7IHJldHVybiB7ICImIjogIiZhbXA7IiwgIjwiOiAiJmx0OyIsICI+ +IjogIiZndDsiLCAnIic6ICImcXVvdDsiIH1bY107IH0pOyB9CiAgLy8gImR1cmNoIFNCIiBhbHMg +IkRpZW5zdGdyYWQgTmFjaG5hbWUiOiBhdXMgIk5hY2huYW1lLCBHcmFkIiAoS29tbWEpIG9kZXIK +ICAvLyAiR3JhZCBWb3JuYW1lIE5hY2huYW1lIiAoMysgVG9rZW5zKSAtPiAiR3JhZCBOYWNobmFt +ZSI7IDEtMiBUb2tlbnMgdW52ZXJhZW5kZXJ0LgogIGZ1bmN0aW9uIGZvcm1hdFNCKG5hbWUpIHsK +ICAgIG5hbWUgPSAobmFtZSB8fCAiIikudHJpbSgpOyBpZiAoIW5hbWUpIHJldHVybiAiIjsKICAg +IHZhciBjID0gL14oLis/KSxccyooLispJC8uZXhlYyhuYW1lKTsgaWYgKGMpIHJldHVybiAoY1sy +XS50cmltKCkgKyAiICIgKyBjWzFdLnRyaW0oKSk7CiAgICB2YXIgdCA9IG5hbWUuc3BsaXQoL1xz +Ky8pOyBpZiAodC5sZW5ndGggPj0gMykgcmV0dXJuIHRbMF0gKyAiICIgKyB0W3QubGVuZ3RoIC0g +MV07CiAgICByZXR1cm4gbmFtZTsKICB9CgogIGZ1bmN0aW9uIGlzT3duKGUpIHsgcmV0dXJuIGUu +YnkgJiYgUC51c2VyICYmIGUuYnkgPT09IFAudXNlcjsgfQogIGZ1bmN0aW9uIGNhbkVkaXRSb3co +ZSkgeyByZXR1cm4gUC5saXZlICYmIChpc093bihlKSB8fCAoUC5pc0FkbWluICYmIFAuaXNBZG1p +bigpKSk7IH0KICBmdW5jdGlvbiBpbmNvbXBsZXRlT3duKGUpIHsgcmV0dXJuIGlzT3duKGUpICYm +IFJFUS5zb21lKGZ1bmN0aW9uIChrKSB7IHJldHVybiAhKChlW2tdIHx8ICIiKS50cmltKCkpOyB9 +KTsgfQogIGZ1bmN0aW9uIGhhc0luY29tcGxldGVPd24oKSB7IHJldHVybiBkYXRhLnNvbWUoaW5j +b21wbGV0ZU93bik7IH0KCiAgLyogLS0tLSBQZXJzaXN0ZW56OiBVcHNlcnQvRGVsZXRlL1BydW5l +IGVpbnplbG4gKFNlcnZlciBtZXJnZWQgLT4ga2VpbiBDbG9iYmVyKSAtLS0tICovCiAgZnVuY3Rp +b24gcG9zdE9wKHBheWxvYWQpIHsKICAgIHJldHVybiBmZXRjaCgiL2FwaS9hcnp0bGlzdGUiLCB7 +IG1ldGhvZDogIlBPU1QiLCBoZWFkZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24v +anNvbiIgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkgfSkKICAgICAgLnRoZW4oZnVu +Y3Rpb24gKHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KTsKICB9CiAgZnVuY3Rpb24gdXBzZXJ0KGUs +IHNpbGVudCkgewogICAgaWYgKHNhdmVUaW1lcnNbZS5pZF0pIGNsZWFyVGltZW91dChzYXZlVGlt +ZXJzW2UuaWRdKTsKICAgIHNhdmVUaW1lcnNbZS5pZF0gPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp +IHsKICAgICAgZGVsZXRlIHNhdmVUaW1lcnNbZS5pZF07CiAgICAgIHBvc3RPcCh7IG9wOiAidXBz +ZXJ0IiwgZW50cnk6IGUgfSkKICAgICAgICAudGhlbihmdW5jdGlvbiAoaikgeyBpZiAoIWogfHwg +IWoub2spIFAudG9hc3QoKGogJiYgai5lcnJvcikgfHwgIlNwZWljaGVybiBmZWhsZ2VzY2hsYWdl +bi4iLCB0cnVlKTsgfSkKICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKCkgeyBQLnRvYXN0KCJTcGVp +Y2hlcm4gZmVobGdlc2NobGFnZW4gKFZlcmJpbmR1bmcpLiIsIHRydWUpOyB9KTsKICAgIH0sIHNp +bGVudCA/IDAgOiA1MDApOwogIH0KICBmdW5jdGlvbiByZWxvYWRGcm9tKGopIHsgaWYgKGogJiYg +ai5vayAmJiBqLmVudHJpZXMpIHsgZGF0YSA9IGouZW50cmllczsgcmVuZGVyKCk7IH0gfQoKICBm +dW5jdGlvbiBkaXN0aW5jdChrKSB7CiAgICB2YXIgc2VlbiA9IHt9LCBvdXQgPSBbXTsKICAgIGRh +dGEuZm9yRWFjaChmdW5jdGlvbiAoZSkgeyB2YXIgdiA9IChlW2tdIHx8ICIiKS50cmltKCk7IGlm +ICh2ICYmICFzZWVuW3YudG9Mb3dlckNhc2UoKV0pIHsgc2Vlblt2LnRvTG93ZXJDYXNlKCldID0g +MTsgb3V0LnB1c2godik7IH0gfSk7CiAgICByZXR1cm4gb3V0LnNvcnQoZnVuY3Rpb24gKGEsIGIp +IHsgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTsgfSk7CiAgfQogIGZ1bmN0aW9uIHJlZnJlc2hE +YXRhbGlzdHMoKSB7CiAgICBDT0xTLmZvckVhY2goZnVuY3Rpb24gKGMpIHsgaWYgKCFjLmFjKSBy +ZXR1cm47IHZhciBkbCA9ICQoIiNhZGwtIiArIGMuayk7IGlmICghZGwpIHJldHVybjsgZGwuaW5u +ZXJIVE1MID0gIiI7IGRpc3RpbmN0KGMuaykuZm9yRWFjaChmdW5jdGlvbiAodikgeyBkbC5hcHBl +bmRDaGlsZChlbCgib3B0aW9uIiwgeyB2YWx1ZTogdiB9KSk7IH0pOyB9KTsKICB9CgogIGZ1bmN0 +aW9uIHJlbmRlcigpIHsKICAgIGlmICghdGFibGVIb3N0KSByZXR1cm47CiAgICB0YWJsZUhvc3Qu +aW5uZXJIVE1MID0gIiI7CiAgICB2YXIgZGxzID0gZWwoImRpdiIsIHsgc3R5bGU6ICJkaXNwbGF5 +Om5vbmUiIH0pOwogICAgQ09MUy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IGlmIChjLmFjKSB7IHZh +ciBkbCA9IGVsKCJkYXRhbGlzdCIsIHsgaWQ6ICJhZGwtIiArIGMuayB9KTsgZGlzdGluY3QoYy5r +KS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7IGRsLmFwcGVuZENoaWxkKGVsKCJvcHRpb24iLCB7IHZh +bHVlOiB2IH0pKTsgfSk7IGRscy5hcHBlbmRDaGlsZChkbCk7IH0gfSk7CiAgICB0YWJsZUhvc3Qu +YXBwZW5kQ2hpbGQoZGxzKTsKCiAgICB2YXIgYWRtaW4gPSAhIShQLmlzQWRtaW4gJiYgUC5pc0Fk +bWluKCkpOwogICAgdmFyIHRibCA9IGVsKCJ0YWJsZSIsIHsgY2xhc3M6ICJhcnp0LXRibCIgfSk7 +CiAgICB2YXIgdGhlYWQgPSBlbCgidGhlYWQiKSwgaHRyID0gZWwoInRyIik7CiAgICBDT0xTLmZv +ckVhY2goZnVuY3Rpb24gKGMpIHsgaHRyLmFwcGVuZENoaWxkKGVsKCJ0aCIsIHsgY2xhc3M6ICJj +b2wtIiArIGMuaywgdGV4dDogYy50IH0pKTsgfSk7CiAgICBpZiAoYWRtaW4pIGh0ci5hcHBlbmRD +aGlsZChlbCgidGgiLCB7IGNsYXNzOiAiY29sLWRlbCIsIHRleHQ6ICIiIH0pKTsKICAgIHRoZWFk +LmFwcGVuZENoaWxkKGh0cik7IHRibC5hcHBlbmRDaGlsZCh0aGVhZCk7CiAgICB2YXIgdGIgPSBl +bCgidGJvZHkiKTsKICAgIHNvcnRlZCgpLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgdmFy +IHRyID0gZWwoInRyIik7IGlmIChpbmNvbXBsZXRlT3duKGUpKSB0ci5jbGFzc0xpc3QuYWRkKCJh +cnp0LWluY29tcGxldGUiKTsKICAgICAgdmFyIGVkaXRhYmxlID0gY2FuRWRpdFJvdyhlKTsKICAg +ICAgQ09MUy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7CiAgICAgICAgdmFyIHRkID0gZWwoInRkIiwg +eyBjbGFzczogImNvbC0iICsgYy5rIH0pOwogICAgICAgIGlmIChjLnJvIHx8ICFlZGl0YWJsZSkg +ewogICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IHRleHQ6IGVbYy5rXSB8fCAi +IiB9KSk7CiAgICAgICAgICBpZiAoYy5ybykgdGQuY2xhc3NMaXN0LmFkZCgicm8iKTsKICAgICAg +ICAgIGlmICghYy5ybyAmJiAhZWRpdGFibGUgJiYgKGVbYy5rXSB8fCAiIikpIHRkLnRpdGxlID0g +Ik51ciBkZXIgRXJzdGVsbGVyICgiICsgKGUuYnkgfHwgIj8iKSArICIpIG9kZXIgZWluIEFkbWlu +IGthbm4gZGllcyDDpG5kZXJuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGlucCA9 +IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCB2YWx1ZTogZVtjLmtdIHx8ICIiLCBhdXRvY29t +cGxldGU6ICJvZmYiIH0pOwogICAgICAgICAgaWYgKGMuYWMpIGlucC5zZXRBdHRyaWJ1dGUoImxp +c3QiLCAiYWRsLSIgKyBjLmspOwogICAgICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0 +IiwgZnVuY3Rpb24gKCkgeyBlW2Mua10gPSBpbnAudmFsdWU7IHRyLmNsYXNzTGlzdC50b2dnbGUo +ImFyenQtaW5jb21wbGV0ZSIsIGluY29tcGxldGVPd24oZSkpOyB1cHNlcnQoZSk7IH0pOwogICAg +ICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgZVtjLmtd +ID0gaW5wLnZhbHVlOyByZWZyZXNoRGF0YWxpc3RzKCk7IH0pOwogICAgICAgICAgKGZ1bmN0aW9u +IChpbnAsIGMpIHsKICAgICAgICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBm +dW5jdGlvbiAoZXYpIHsKICAgICAgICAgICAgICBpZiAoZXYua2V5ICE9PSAiRW50ZXIiKSByZXR1 +cm47CiAgICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICBpZiAo +Yy5hYykgeyAgIC8vIFZvcnNjaGxhZyBwZXIgRW50ZXIgdWViZXJuZWhtZW4gKGVyc3RlciBUcmVm +ZmVyLCBkZXIgbWl0IGRlciBFaW5nYWJlIGJlZ2lubnQpCiAgICAgICAgICAgICAgICB2YXIgdiA9 +IGlucC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgICAgICBpZiAodikgewogICAgICAgICAgICAg +ICAgICB2YXIgb3B0cyA9IGRpc3RpbmN0KGMuayk7CiAgICAgICAgICAgICAgICAgIGZvciAodmFy +IGkgPSAwOyBpIDwgb3B0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgIGlmIChv +cHRzW2ldLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih2LnRvTG93ZXJDYXNlKCkpID09PSAwICYmIG9w +dHNbaV0udG9Mb3dlckNhc2UoKSAhPT0gdi50b0xvd2VyQ2FzZSgpKSB7IGlucC52YWx1ZSA9IG9w +dHNbaV07IGVbYy5rXSA9IG9wdHNbaV07IHVwc2VydChlKTsgcmVmcmVzaERhdGFsaXN0cygpOyBi +cmVhazsgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg +ICAgfQogICAgICAgICAgICAgIHZhciBpbnMgPSB0ci5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dCIp +OyAgIC8vIGRpcmVrdCBpbiBkaWUgbmFlY2hzdGUgWmVsbGUgc3ByaW5nZW4KICAgICAgICAgICAg +ICBmb3IgKHZhciBuID0gMDsgbiA8IGlucy5sZW5ndGg7IG4rKykgeyBpZiAoaW5zW25dID09PSBp +bnApIHsgaWYgKGluc1tuICsgMV0pIGluc1tuICsgMV0uZm9jdXMoKTsgYnJlYWs7IH0gfQogICAg +ICAgICAgICB9KTsKICAgICAgICAgIH0pKGlucCwgYyk7CiAgICAgICAgICB0ZC5hcHBlbmRDaGls +ZChpbnApOwogICAgICAgIH0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgIH0pOwog +ICAgICBpZiAoYWRtaW4pIHsKICAgICAgICB2YXIgZHRkID0gZWwoInRkIiwgeyBjbGFzczogImNv +bC1kZWwiIH0pOwogICAgICAgIGR0ZC5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczog +Im1pbmktYnRuIiwgdGl0bGU6ICJEaWVzZSBaZWlsZSBsw7ZzY2hlbiAoQWRtaW4pIiwgaHRtbDog +aWMoInRyYXNoIiksCiAgICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg +IGlmICghZS5pZCkgeyBQLnRvYXN0KCJaZWlsZSBvaG5lIElEIOKAlCBiaXR0ZSBuZXUgbGFkZW4s +IGRhbm4gbMO2c2NoZW4uIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgICAgICBQLmNvbmZpcm0o +IkRpZXNlIEVJTkUgWmVpbGUgKCIgKyAoZS5kYXR1bSB8fCAiIikgKyAiICIgKyAoZS56ZWl0IHx8 +ICIiKSArIChlLmFyenQgPyAiIMK3ICIgKyBlLmFyenQgOiAiIikgKyAiKSBsw7ZzY2hlbj8iLCBm +dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcG9zdE9wKHsgb3A6ICJkZWxldGUiLCBpZDogZS5p +ZCB9KS50aGVuKGZ1bmN0aW9uIChqKSB7CiAgICAgICAgICAgICAgICBpZiAoaiAmJiBqLm9rKSB7 +IHJlbG9hZEZyb20oaik7IH0gZWxzZSB7IFAudG9hc3QoKGogJiYgai5lcnJvcikgfHwgIkzDtnNj +aGVuIGZlaGxnZXNjaGxhZ2VuLiIsIHRydWUpOyB9CiAgICAgICAgICAgICAgfSkuY2F0Y2goZnVu +Y3Rpb24gKCkgeyBQLnRvYXN0KCJMw7ZzY2hlbiBmZWhsZ2VzY2hsYWdlbiAoVmVyYmluZHVuZyku +IiwgdHJ1ZSk7IH0pOwogICAgICAgICAgICB9LCB7IGRhbmdlcjogdHJ1ZSB9KTsKICAgICAgICAg +IH0gfSkpOwogICAgICAgIHRyLmFwcGVuZENoaWxkKGR0ZCk7CiAgICAgIH0KICAgICAgdGIuYXBw +ZW5kQ2hpbGQodHIpOwogICAgfSk7CiAgICB0YmwuYXBwZW5kQ2hpbGQodGIpOwogICAgdGFibGVI +b3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ6dC10Ymx3cmFwIiB9LCBbdGJs +XSkpOwogICAgaWYgKCFkYXRhLmxlbmd0aCkgdGFibGVIb3N0LmFwcGVuZENoaWxkKGVsKCJwIiwg +eyBjbGFzczogIm11dGVkIiwgdGV4dDogIk5vY2gga2VpbmUgRWludHLDpGdlLiIgfSkpOwogIH0K +CiAgZnVuY3Rpb24gbmV3RW50cnkoKSB7CiAgICBpZiAoIVAubGl2ZSkgeyBQLnRvYXN0KCJOdXIg +aW0gUGZsZWdlLU1vZHVzIChQb3J0YWwgw7xiZXIgZGllIEJBVCkuIiwgdHJ1ZSk7IHJldHVybjsg +fQogICAgdmFyIG5wID0gbm93UGFydHMoKTsKICAgIHZhciBlID0geyBpZDogUC51aWQgPyBQLnVp +ZCgiYXJ6IikgOiAoImFyei0iICsgRGF0ZS5ub3coKSArICItIiArIE1hdGgucmFuZG9tKCkudG9T +dHJpbmcoMzYpLnNsaWNlKDIsIDYpKSwKICAgICAgYnk6IFAudXNlciB8fCAiIiwgdHM6IG5wLnRz +LCBkYXR1bTogbnAuZGF0dW0sIHplaXQ6IG5wLnplaXQsCiAgICAgIGFyenQ6ICIiLCBzdGVsbGU6 +ICIiLCB3b2hpbjogIiIsIGVycmVpY2h0OiAiIiwKICAgICAgc2I6IGZvcm1hdFNCKFAudXNlck5h +bWUgfHwgUC51c2VyIHx8ICIiKSwgICAvLyAiZHVyY2ggU0IiIGFscyAiRGllbnN0Z3JhZCBOYWNo +bmFtZSIgKHouQi4gIlBISyBSb2VzZ2VuIikKICAgICAgZ3J1bmQ6ICIiLCBiZW1lcmt1bmc6ICIi +IH07CiAgICBkYXRhLnB1c2goZSk7IHVwc2VydChlLCB0cnVlKTsgcmVuZGVyKCk7CiAgICB2YXIg +Zmlyc3RSb3cgPSB0YWJsZUhvc3QgJiYgdGFibGVIb3N0LnF1ZXJ5U2VsZWN0b3IoInRib2R5IHRy +Iik7CiAgICBpZiAoZmlyc3RSb3cpIHsgdmFyIGlucCA9IGZpcnN0Um93LnF1ZXJ5U2VsZWN0b3Io +Ii5jb2wtYXJ6dCBpbnB1dCIpOyBpZiAoaW5wKSBpbnAuZm9jdXMoKTsgfQogIH0KCiAgZnVuY3Rp +b24gY3N2Q2VsbChzKSB7IHMgPSAocyA9PSBudWxsID8gIiIgOiBTdHJpbmcocykpOyByZXR1cm4g +L1siO1xuXHJdLy50ZXN0KHMpID8gJyInICsgcy5yZXBsYWNlKC8iL2csICciIicpICsgJyInIDog +czsgfQogIGZ1bmN0aW9uIGV4cG9ydENTVigpIHsKICAgIGlmICghUC5saXZlKSB7IFAudG9hc3Qo +Ik51ciBpbSBQZmxlZ2UtTW9kdXMuIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgdmFyIHJvd3MgPSBz +b3J0ZWQoKTsKICAgIHZhciBoZWFkID0gQ09MUy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMu +dDsgfSkuam9pbigiOyIpOwogICAgdmFyIGJvZHkgPSByb3dzLm1hcChmdW5jdGlvbiAoZSkgeyBy +ZXR1cm4gQ09MUy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGNzdkNlbGwoZVtjLmtdKTsgfSku +am9pbigiOyIpOyB9KTsKICAgIHZhciBjc3YgPSAi77u/IiArIGhlYWQgKyAiXHJcbiIgKyBib2R5 +LmpvaW4oIlxyXG4iKSArICJcclxuIjsKICAgIHBvc3RPcDsgLy8gbm9vcCByZWYKICAgIGZldGNo +KCIvYXBpL2FyenRiYWNrdXAiLCB7IG1ldGhvZDogIlBPU1QiLCBoZWFkZXJzOiB7ICJDb250ZW50 +LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBjc3Y6 +IGNzdiB9KSB9KQogICAgICAudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0p +CiAgICAgIC50aGVuKGZ1bmN0aW9uIChqKSB7CiAgICAgICAgaWYgKCFqIHx8ICFqLm9rKSB7IFAu +dG9hc3QoKGogJiYgai5lcnJvcikgfHwgIkJhY2t1cCBmZWhsZ2VzY2hsYWdlbi4iLCB0cnVlKTsg +cmV0dXJuOyB9CiAgICAgICAgdmFyIGN1dG9mZiA9IG5ldyBEYXRlKERhdGUubm93KCkgLSAxNCAq +IDI0ICogMzYwMCAqIDEwMDApLnRvSVNPU3RyaW5nKCk7CiAgICAgICAgcmV0dXJuIHBvc3RPcCh7 +IG9wOiAicHJ1bmUiLCBjdXRvZmY6IGN1dG9mZiB9KS50aGVuKGZ1bmN0aW9uIChrKSB7CiAgICAg +ICAgICByZWxvYWRGcm9tKGspOwogICAgICAgICAgUC50b2FzdCgiQ1NWIGdlc2ljaGVydDogIiAr +IChqLmZpbGUgfHwgIkRhdGVuc2ljaGVydW5nIikgKyAiLiBMaXN0ZSBhdWYgMTQgVGFnZSBnZWvD +vHJ6dC4iKTsKICAgICAgICB9KTsKICAgICAgfSkKICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsg +UC50b2FzdCgiQmFja3VwIGZlaGxnZXNjaGxhZ2VuIChWZXJiaW5kdW5nKS4iLCB0cnVlKTsgfSk7 +CiAgfQoKICBmdW5jdGlvbiBleHBvcnRQREYoKSB7CiAgICB2YXIgcm93cyA9IHNvcnRlZCgpLCBu +cCA9IG5vd1BhcnRzKCk7CiAgICB2YXIgaCA9ICc8dGFibGU+PHRoZWFkPjx0cj4nICsgQ09MUy5t +YXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuICI8dGg+IiArIGVzYyhjLnQpICsgIjwvdGg+IjsgfSku +am9pbigiIikgKyAnPC90cj48L3RoZWFkPjx0Ym9keT4nOwogICAgcm93cy5mb3JFYWNoKGZ1bmN0 +aW9uIChlKSB7IGggKz0gIjx0cj4iICsgQ09MUy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuICI8 +dGQ+IiArIGVzYyhlW2Mua10gfHwgIiIpICsgIjwvdGQ+IjsgfSkuam9pbigiIikgKyAiPC90cj4i +OyB9KTsKICAgIGggKz0gIjwvdGJvZHk+PC90YWJsZT4iOwogICAgdmFyIHcgPSB3aW5kb3cub3Bl +bigiIiwgIl9ibGFuayIpOwogICAgaWYgKCF3KSB7IFAudG9hc3QoIlBvcHVwIGJsb2NraWVydCDi +gJQgUERGIG5pY2h0IG3DtmdsaWNoLiIsIHRydWUpOyByZXR1cm47IH0KICAgIHcuZG9jdW1lbnQu +d3JpdGUoJzwhRE9DVFlQRSBodG1sPjxodG1sIGxhbmc9ImRlIj48aGVhZD48bWV0YSBjaGFyc2V0 +PSJ1dGYtOCI+PHRpdGxlPkFyenRhbmZvcmRlcnVuZ2VuPC90aXRsZT4nICsKICAgICAgJzxzdHls +ZT5AcGFnZXtzaXplOmxhbmRzY2FwZX1ib2R5e2ZvbnQ6MTFweCAiU2Vnb2UgVUkiLHNhbnMtc2Vy +aWY7bWFyZ2luOjE2cHh9aDJ7bWFyZ2luOjAgMCAxMHB4O2ZvbnQtc2l6ZToxNXB4fScgKwogICAg +ICAndGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOjEwMCV9dGgsdGR7Ym9yZGVy +OjFweCBzb2xpZCAjODg4O3BhZGRpbmc6M3B4IDVweDt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwt +YWxpZ246dG9wfXRoe2JhY2tncm91bmQ6I2VlZX08L3N0eWxlPjwvaGVhZD48Ym9keT4nICsKICAg +ICAgJzxoMj5Bcnp0YW5mb3JkZXJ1bmdlbiDigJQgU3RhbmQgJyArIGVzYyhucC5kYXR1bSArICIg +IiArIG5wLnplaXQpICsgJzwvaDI+JyArIGggKwogICAgICAnPHNjcicgKyAnaXB0PndpbmRvdy5v +bmxvYWQ9ZnVuY3Rpb24oKXt3aW5kb3cucHJpbnQoKTt9PC9zY3InICsgJ2lwdD48L2JvZHk+PC9o +dG1sPicpOwogICAgdy5kb2N1bWVudC5jbG9zZSgpOwogIH0KCiAgZnVuY3Rpb24gY29uZmlybUNs +b3NlKGFwaSkgewogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiRWludHJhZyB1bnZvbGxzdMOk +bmRpZyIsIGljb246ICJhbGVydCIsIHNpemU6ICJzbSIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uICho +b3N0KSB7IGhvc3QuYXBwZW5kQ2hpbGQoZWwoInAiLCB7IHRleHQ6ICJEdSBoYXN0IGVpbmUgYmVn +b25uZW5lIFplaWxlLCBiZWkgZGVyIG5vY2ggbmljaHQgYWxsZSBQZmxpY2h0ZmVsZGVyIChhbmdl +Zm9yZGVydGVyIEFyenQg4oCmIEdydW5kIGRlciBBbmZvcmRlcnVuZykgYXVzZ2Vmw7xsbHQgc2lu +ZC4gSGFzdCBkdSB3aXJrbGljaCBzY2hvbiBhbGxlcyBlaW5nZXRyYWdlbj8iIH0pKTsgfSwKICAg +ICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJXZWl0ZXIgYXVzZsO8bGxlbiIsIGtpbmQ6 +ICJnaG9zdCIgfSwKICAgICAgICB7IGxhYmVsOiAiVHJvdHpkZW0gc2NobGllw59lbiIsIGtpbmQ6 +ICJkYW5nZXIiLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChhcGkpIGFwaS5jbG9zZSgpOyB9 +IH0KICAgICAgXQogICAgfSk7CiAgfQoKICBQLm9wZW5Bcnp0TGlzdGUgPSBmdW5jdGlvbiAoKSB7 +CiAgICB2YXIgYXBpID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiQXJ6dCBhbmZvcmRlcm4g4oCU +IEFuZm9yZGVydW5nc3JlZ2lzdGVyIiwgaWNvbjogImluYm94Iiwgc2l6ZTogInhsIiwgZGlzbWlz +c2FibGU6IGZhbHNlLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkgewogICAgICAgIGhvc3Qu +Y2xhc3NMaXN0LmFkZCgiYXJ6dC1ib2R5Iik7CiAgICAgICAgdGFibGVIb3N0ID0gZWwoImRpdiIs +IHsgY2xhc3M6ICJhcnp0LWhvc3QiIH0pOwogICAgICAgIHRhYmxlSG9zdC5hcHBlbmRDaGlsZChl +bCgicCIsIHsgY2xhc3M6ICJtdXRlZCIsIHRleHQ6IFAubGl2ZSA/ICJMYWRlIOKApiIgOiAiTnVy +LUxlc2UtQW5zaWNodCAoQmVhcmJlaXRlbiBpbSBQZmxlZ2UtTW9kdXMpLiIgfSkpOwogICAgICAg +IGhvc3QuYXBwZW5kQ2hpbGQodGFibGVIb3N0KTsKICAgICAgfSwKICAgICAgYWN0aW9uczogWwog +ICAgICAgIHsgbGFiZWw6ICJOZXVlciBFaW50cmFnIiwga2luZDogInByaW1hcnkiLCBpY29uOiAi +cGx1cyIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAo +KSB7IG5ld0VudHJ5KCk7IH0gfSwKICAgICAgICB7IGxhYmVsOiAiQWt0dWFsaXNpZXJlbiIsIGtp +bmQ6ICJnaG9zdCIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVlLCBvbkNsaWNrOiBmdW5j +dGlvbiAoKSB7IGxvYWQoKTsgfSB9LAogICAgICAgIHsgbGFiZWw6ICJBbHMgUERGIiwga2luZDog +Imdob3N0Iiwga2VlcE9wZW46IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgZXhwb3J0UERG +KCk7IH0gfSwKICAgICAgICB7IGxhYmVsOiAiQ1NWIHNpY2hlcm4gKDE0IFQpIiwga2luZDogImdo +b3N0Iiwga2VlcE9wZW46IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgZXhwb3J0Q1NWKCk7 +IH0gfSwKICAgICAgICB7IGxhYmVsOiAiU2NobGllw59lbiIsIGtpbmQ6ICJnaG9zdCIsIG9uQ2xp +Y2s6IGZ1bmN0aW9uIChhKSB7IGlmIChoYXNJbmNvbXBsZXRlT3duKCkpIHsgY29uZmlybUNsb3Nl +KGEpOyByZXR1cm4gZmFsc2U7IH0gfSB9CiAgICAgIF0KICAgIH0pOwogICAgLy8gRWluZ2ViYXV0 +ZXMgWCBlYmVuZmFsbHMgYWJzaWNoZXJuIChSdWVja2ZyYWdlIGJlaSB1bnZvbGxzdGFlbmRpZ2Vy +IGVpZ2VuZXIgWmVpbGUpCiAgICB2YXIgeCA9IGFwaSAmJiBhcGkuZWwgJiYgYXBpLmVsLnF1ZXJ5 +U2VsZWN0b3IoIi5tb2RhbC14Iik7CiAgICBpZiAoeCkgeC5hZGRFdmVudExpc3RlbmVyKCJjbGlj +ayIsIGZ1bmN0aW9uIChldikgeyBpZiAoaGFzSW5jb21wbGV0ZU93bigpKSB7IGV2LnN0b3BJbW1l +ZGlhdGVQcm9wYWdhdGlvbigpOyBldi5wcmV2ZW50RGVmYXVsdCgpOyBjb25maXJtQ2xvc2UoYXBp +KTsgfSB9LCB0cnVlKTsKCiAgICBmdW5jdGlvbiBsb2FkKCkgewogICAgICBpZiAoIVAubGl2ZSkg +eyBkYXRhID0gW107IHJlbmRlcigpOyByZXR1cm47IH0KICAgICAgZmV0Y2goIi9hcGkvYXJ6dGxp +c3RlIiwgeyBjYWNoZTogIm5vLXN0b3JlIiB9KS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiBy +Lmpzb24oKTsgfSkudGhlbihmdW5jdGlvbiAoaikgewogICAgICAgIGRhdGEgPSAoaiAmJiBqLm9r +ICYmIGouZW50cmllcykgPyBqLmVudHJpZXMgOiBbXTsgcmVuZGVyKCk7CiAgICAgIH0pLmNhdGNo +KGZ1bmN0aW9uICgpIHsgZGF0YSA9IFtdOyByZW5kZXIoKTsgUC50b2FzdCgiTGlzdGUgbmljaHQg +bGFkYmFyIChsw6R1ZnQgZGVyIEhlbGZlcj8pLiIsIHRydWUpOyB9KTsKICAgIH0KICAgIGxvYWQo +KTsKICB9OwoKICAvKiBBcHAtUmVnaXN0cnkgKyBBdWZsb2VzdW5nICh2b24gUC5uYXZpZ2F0ZSBn +ZW51dHp0KS4gKi8KICBQLmFwcHMgPSBQLmFwcHMgfHwge307CiAgUC5yZWdpc3RlckFwcCA9IGZ1 +bmN0aW9uIChrZXksIG9wZW5lciwgbGFiZWxzKSB7IFAuYXBwc1trZXldID0geyBvcGVuOiBvcGVu +ZXIsIGxhYmVsczogKGxhYmVscyB8fCBbXSkubWFwKGZ1bmN0aW9uIChzKSB7IHJldHVybiBTdHJp +bmcocykudG9Mb3dlckNhc2UoKTsgfSkgfTsgfTsKICBQLmFwcEZvckl0ZW0gPSBmdW5jdGlvbiAo +aXQpIHsKICAgIGlmICghaXQpIHJldHVybiBudWxsOwogICAgdmFyIGggPSAoaXQuaHJlZiB8fCAi +IikudG9Mb3dlckNhc2UoKTsKICAgIGlmIChoLmluZGV4T2YoImFwcDoiKSA9PT0gMCkgeyB2YXIg +ayA9IGguc2xpY2UoNCkucmVwbGFjZSgvXlwvKy8sICIiKTsgcmV0dXJuIFAuYXBwc1trXSA/IFAu +YXBwc1trXS5vcGVuIDogbnVsbDsgfQogICAgdmFyIGxibCA9IChpdC5sYWJlbCB8fCAiIikudG9M +b3dlckNhc2UoKS50cmltKCk7CiAgICBmb3IgKHZhciBrZXkgaW4gUC5hcHBzKSB7IGlmIChQLmFw +cHNba2V5XS5sYWJlbHMuaW5kZXhPZihsYmwpID49IDApIHJldHVybiBQLmFwcHNba2V5XS5vcGVu +OyB9CiAgICByZXR1cm4gbnVsbDsKICB9OwogIFAucmVnaXN0ZXJBcHAoImFyenRhbmZvcmRlcnVu +ZyIsIGZ1bmN0aW9uICgpIHsgUC5vcGVuQXJ6dExpc3RlKCk7IH0sCiAgICBbImFyenQgYW5mb3Jk +ZXJuIiwgImFyenQgYW5mb3JkZXJ1bmciLCAiYXJ6dGFuZm9yZGVydW5nIiwgImFyenQtYW5mb3Jk +ZXJ1bmciLCAiYXJ6dCBhbmZvcmRlcm4hIl0pOwoKfSkod2luZG93LlApOwo= +### FILE: assets/js/features/bao.js | 15906 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PQogKiAgZmVhdHVyZXMvYmFvLmpzIOKAlCBCQU8tUG9ydGFs +IGFscyBlaWdlbnN0w6RuZGlnZXIsIHJlLWdldGhlbXRlciBCZXJlaWNoCiAqICAtLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tCiAqICAiU3BydW5nIGluIGRpZSBCQU8iOiDDvGJlcmxhZ2VydCBkaWUgUG9ydGFs +LVNoZWxsIHZvbGxmbMOkY2hpZy4gRGFzaGJvYXJkCiAqICAoS2F0ZWdvcmllLUthY2hlbG4pIOKG +kiBMYWdlLVdvcmtzcGFjZSBtaXQgZ3J1cHBpZXJ0ZXIgU2lkZWJhciArIFN0YW5kYXJkLQogKiAg +YW5zaWNodCAoRXJrbMOkcnVuZyArIEdydW5kc8OkdHplICsgQ2hlY2tsaXN0ZS9PcmdhbmlncmFt +bSwgd2llIGltIE9yaWdpbmFsKS4KICogIFBERnMgYWxzIDxpZnJhbWU+LUVtYmVkLCBBcnRpa2Vs +IHZpYSBQLnNhbml0aXplSHRtbCAoU2ljaGVyaGVpdHMtUGZsaWNodCkuCiAqICBEYXRlbmdldHJp +ZWJlbiBhdXMgd2luZG93LlBPUlRBTF9CQU8gLyB3aW5kb3cuUE9SVEFMX0JBT19BUlQuCiAqID09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIg +QkFPID0gd2luZG93LlBPUlRBTF9CQU8gfHwgeyBjYXRlZ29yaWVzOiBbXSwgbGFnZW46IFtdLCBp +bmZvOiBbXSwga3NzdDogW10gfTsKICB2YXIgQVJUID0gd2luZG93LlBPUlRBTF9CQU9fQVJUIHx8 +IHt9OwogIHZhciBlbCA9IFAuZWwsIGljID0gUC5pYywgZXNjID0gUC5lc2NhcGVIdG1sOwoKICB2 +YXIgcm9vdCA9IG51bGwsIGJvZHlIb3N0ID0gbnVsbDsKICBQLmJhb0FjdGl2ZSA9IGZhbHNlOwog +IHZhciBzdGF0ZSA9IHsgbGFnZTogbnVsbCwgdmlldzogImRhc2giIH07CgogIGZ1bmN0aW9uIGNh +dEJ5SWQoaykgeyBmb3IgKHZhciBpID0gMDsgaSA8IEJBTy5jYXRlZ29yaWVzLmxlbmd0aDsgaSsr +KSBpZiAoQkFPLmNhdGVnb3JpZXNbaV0ua2V5ID09PSBrKSByZXR1cm4gQkFPLmNhdGVnb3JpZXNb +aV07IHJldHVybiBudWxsOyB9CiAgZnVuY3Rpb24gbGFnZUJ5S2V5KGspIHsgZm9yICh2YXIgaSA9 +IDA7IGkgPCBCQU8ubGFnZW4ubGVuZ3RoOyBpKyspIGlmIChCQU8ubGFnZW5baV0ua2V5ID09PSBr +KSByZXR1cm4gQkFPLmxhZ2VuW2ldOyByZXR1cm4gbnVsbDsgfQogIGZ1bmN0aW9uIGNhdENvbG9y +KGspIHsgdmFyIGMgPSBjYXRCeUlkKGspOyByZXR1cm4gKGMgJiYgYy5jb2xvcikgfHwgInZhcigt +LWJyYW5kKSI7IH0KCiAgLyogRG9jIG5vcm1hbGlzaWVyZW4g4oCUIGtvbXBha3Qge2wsZixhLHBn +fSBPREVSIGF1c2bDvGhybGljaCB7bGFiZWwsdHlwZSxmaWxlLGFydH0gKi8KICBmdW5jdGlvbiBu +b3JtKGQpIHsKICAgIHZhciBhcnQgPSBkLmEgfHwgKGQudHlwZSA9PT0gImFydGljbGUiID8gZC5h +cnQgOiBudWxsKTsKICAgIHZhciBmaWxlID0gZC5mIHx8IChkLnR5cGUgPT09ICJwZGYiID8gZC5m +aWxlIDogbnVsbCkgfHwgKCFkLnR5cGUgJiYgIWQuYSAmJiBkLmZpbGUpIHx8IG51bGw7CiAgICBy +ZXR1cm4geyBsYWJlbDogZC5sIHx8IGQubGFiZWwgfHwgIiIsIGFydDogYXJ0IHx8IG51bGwsIGZp +bGU6IGZpbGUgfHwgbnVsbCwKICAgICAgICAgICAgIHBhZ2U6IGQucGcgfHwgZC5wYWdlIHx8IG51 +bGwsIGtpbmQ6IGFydCA/ICJhcnRpY2xlIiA6ICJwZGYiIH07CiAgfQoKICAvKiBQZmFkZSBtaXQg +VW1sYXV0ZW4vTGVlcnplaWNoZW4gYWJzaWNoZXJuIChmaWxlOi8vICsgaHR0cCkgKi8KICBmdW5j +dGlvbiBzYWZlU3JjKHApIHsKICAgIGlmICghcCkgcmV0dXJuICJhYm91dDpibGFuayI7CiAgICB2 +YXIgaGFzaCA9ICIiLCBpID0gcC5pbmRleE9mKCIjIik7CiAgICBpZiAoaSA+PSAwKSB7IGhhc2gg +PSBwLnNsaWNlKGkpOyBwID0gcC5zbGljZSgwLCBpKTsgfQogICAgdHJ5IHsgcmV0dXJuIHAuc3Bs +aXQoIi8iKS5tYXAoZW5jb2RlVVJJQ29tcG9uZW50KS5qb2luKCIvIikgKyBoYXNoOyB9CiAgICBj +YXRjaCAoZSkgeyByZXR1cm4gcCArIGhhc2g7IH0KICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLSBHcnVuZGdlcsO8c3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K +ICBmdW5jdGlvbiBlbnN1cmVSb290KCkgewogICAgaWYgKHJvb3QpIHJldHVybjsKICAgIHJvb3Qg +PSBlbCgiZGl2IiwgeyBpZDogImJhby1yb290IiwgY2xhc3M6ICJiYW8tcm9vdCIsIGhpZGRlbjog +IiIgfSk7CgogICAgdmFyIHRvcCA9IGVsKCJoZWFkZXIiLCB7IGNsYXNzOiAiYmFvLXRvcCIgfSk7 +CiAgICB0b3AuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJiYW8tZXhpdCIsIHRp +dGxlOiAiWnVyw7xjayB6dSBQb3J0YWwgVW5pb24iLAogICAgICBodG1sOiBpYygiYmFjayIpICsg +IjxzcGFuPlBvcnRhbCBVbmlvbjwvc3Bhbj4iLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFAuZXhp +dEJhbygpOyB9IH0pKTsKICAgIHRvcC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImJh +by10aXRsZSIsCiAgICAgIGh0bWw6ICI8Yj5CQU8tUG9ydGFsPC9iPjxzcGFuPkbDvGhydW5nICZh +bXA7IFN0ZXVlcnVuZyDCtyBGTEQgRG9ydG11bmQ8L3NwYW4+IiwKICAgICAgb25jbGljazogZnVu +Y3Rpb24gKCkgeyBzaG93RGFzaGJvYXJkKCk7IH0gfSkpOwogICAgdmFyIGNhdHMgPSBlbCgibmF2 +IiwgeyBjbGFzczogImJhby1jYXRzIiB9KTsKICAgIEJBTy5jYXRlZ29yaWVzLmZvckVhY2goZnVu +Y3Rpb24gKGMpIHsKICAgICAgY2F0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczog +ImJhby1jYXRqdW1wIiwgc3R5bGU6ICItLWNhdDoiICsgYy5jb2xvciwgaHRtbDogZXNjKGMuc2hv +cnQpLCB0aXRsZTogYy5sYWJlbCwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHNob3dE +YXNoYm9hcmQoKTsgc2Nyb2xsVG9DYXQoYy5rZXkpOyB9IH0pKTsKICAgIH0pOwogICAgdG9wLmFw +cGVuZENoaWxkKGNhdHMpOwogICAgdmFyIHJpZ2h0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8t +dG9wLXJpZ2h0IiB9KTsKICAgIHJpZ2h0LmFwcGVuZENoaWxkKG1lbnVCdXR0b24oIkluZm8gLyBT +ZXJ2aWNlIiwgQkFPLmluZm8sIG9wZW5JbmZvKSk7CiAgICByaWdodC5hcHBlbmRDaGlsZChrc3N0 +QnV0dG9uKCkpOwogICAgdG9wLmFwcGVuZENoaWxkKHJpZ2h0KTsKCiAgICBib2R5SG9zdCA9IGVs +KCJkaXYiLCB7IGNsYXNzOiAiYmFvLWJvZHkiLCBpZDogImJhby1ib2R5IiB9KTsKICAgIHJvb3Qu +YXBwZW5kQ2hpbGQodG9wKTsgcm9vdC5hcHBlbmRDaGlsZChib2R5SG9zdCk7CiAgICAoZG9jdW1l +bnQucXVlcnlTZWxlY3RvcigiLmFwcCIpIHx8IGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHJv +b3QpOwoKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBmdW5jdGlvbiAo +ZSkgewogICAgICBpZiAoIVAuYmFvQWN0aXZlKSByZXR1cm47CiAgICAgIGlmIChlLmtleSA9PT0g +IkVzY2FwZSIpIHsgaWYgKHN0YXRlLnZpZXcgIT09ICJkYXNoIikgc2hvd0Rhc2hib2FyZCgpOyBl +bHNlIFAuZXhpdEJhbygpOyB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIG1lbnVCdXR0b24obGFi +ZWwsIGl0ZW1zLCBvblBpY2spIHsKICAgIHZhciB3cmFwID0gZWwoImRpdiIsIHsgY2xhc3M6ICJi +YW8tbWVudSIgfSk7CiAgICB2YXIgYnRuID0gZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJiYW8tbWVu +dS1idG4iLCBodG1sOiBlc2MobGFiZWwpICsgIiAiICsgaWMoImNoZXYiKSB9KTsKICAgIHZhciBw +b3AgPSBlbCgiZGl2IiwgeyBjbGFzczogImJhby1tZW51LXBvcCIsIGhpZGRlbjogIiIgfSk7CiAg +ICAoaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7CiAgICAgIHBvcC5hcHBlbmRD +aGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImJhby1tZW51LWl0ZW0iLCBodG1sOiBlc2MoaXQu +bGFiZWwpLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgcG9wLmhpZGRlbiA9IHRydWU7 +IG9uUGljayhpdCk7IH0gfSkpOwogICAgfSk7CiAgICBidG4ub25jbGljayA9IGZ1bmN0aW9uIChl +KSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IGNsb3NlTWVudXMoKTsgcG9wLmhpZGRlbiA9ICFwb3Au +aGlkZGVuOyB9OwogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlv +biAoKSB7IHBvcC5oaWRkZW4gPSB0cnVlOyB9KTsKICAgIHdyYXAuYXBwZW5kQ2hpbGQoYnRuKTsg +d3JhcC5hcHBlbmRDaGlsZChwb3ApOwogICAgcmV0dXJuIHdyYXA7CiAgfQogIGZ1bmN0aW9uIGtz +c3RCdXR0b24oKSB7CiAgICB2YXIgd3JhcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLW1lbnUi +IH0pOwogICAgdmFyIGJ0biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYmFvLW1lbnUtYnRuIiwg +aHRtbDogIktTU1QgIiArIGljKCJjaGV2IikgfSk7CiAgICB2YXIgcG9wID0gZWwoImRpdiIsIHsg +Y2xhc3M6ICJiYW8tbWVudS1wb3Agd2lkZSIsIGhpZGRlbjogIiIgfSk7CiAgICB2YXIgbGFzdEdy +cCA9IG51bGw7CiAgICAoQkFPLmtzc3QgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGspIHsKICAg +ICAgaWYgKGsuZ3JvdXAgIT09IGxhc3RHcnApIHsgcG9wLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7 +IGNsYXNzOiAiYmFvLW1lbnUtZ3JwIiwgaHRtbDogZXNjKGsuZ3JvdXApIH0pKTsgbGFzdEdycCA9 +IGsuZ3JvdXA7IH0KICAgICAgcG9wLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAi +YmFvLW1lbnUtaXRlbSIsIHRpdGxlOiBrLmFkZHIsCiAgICAgICAgaHRtbDogZXNjKGsubGFiZWwp +ICsgIjxzbWFsbD4iICsgZXNjKGsuYWRkcikgKyAiPC9zbWFsbD4iLAogICAgICAgIG9uY2xpY2s6 +IGZ1bmN0aW9uICgpIHsgcG9wLmhpZGRlbiA9IHRydWU7IG9wZW5Lc3N0KGspOyB9IH0pKTsKICAg +IH0pOwogICAgYnRuLm9uY2xpY2sgPSBmdW5jdGlvbiAoZSkgeyBlLnN0b3BQcm9wYWdhdGlvbigp +OyBjbG9zZU1lbnVzKCk7IHBvcC5oaWRkZW4gPSAhcG9wLmhpZGRlbjsgfTsKICAgIGRvY3VtZW50 +LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBwb3AuaGlkZGVuID0gdHJ1 +ZTsgfSk7CiAgICB3cmFwLmFwcGVuZENoaWxkKGJ0bik7IHdyYXAuYXBwZW5kQ2hpbGQocG9wKTsK +ICAgIHJldHVybiB3cmFwOwogIH0KICBmdW5jdGlvbiBjbG9zZU1lbnVzKCkgeyB2YXIgcHMgPSBy +b290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5iYW8tbWVudS1wb3AiKTsgZm9yICh2YXIgaSA9IDA7IGkg +PCBwcy5sZW5ndGg7IGkrKykgcHNbaV0uaGlkZGVuID0gdHJ1ZTsgfQoKICAvKiAtLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLSBEYXNoYm9hcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0gKi8KICBmdW5jdGlvbiBzaG93RGFzaGJvYXJkKCkgewogICAgc3RhdGUudmlldyA9ICJkYXNo +Ijsgc3RhdGUubGFnZSA9IG51bGw7CiAgICBib2R5SG9zdC5pbm5lckhUTUwgPSAiIjsKICAgIHZh +ciBkYXNoID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tZGFzaCIgfSk7CiAgICBCQU8uY2F0ZWdv +cmllcy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7CiAgICAgIHZhciBsYWdlbiA9IEJBTy5sYWdlbi5m +aWx0ZXIoZnVuY3Rpb24gKGwpIHsgcmV0dXJuIGwuY2F0ID09PSBjLmtleTsgfSk7CiAgICAgIGlm +ICghbGFnZW4ubGVuZ3RoKSByZXR1cm47CiAgICAgIHZhciBzZWMgPSBlbCgic2VjdGlvbiIsIHsg +Y2xhc3M6ICJiYW8tY2F0c2VjIiwgaWQ6ICJiYW8tY2F0LSIgKyBjLmtleSwgc3R5bGU6ICItLWNh +dDoiICsgYy5jb2xvciB9KTsKICAgICAgc2VjLmFwcGVuZENoaWxkKGVsKCJoMiIsIHsgY2xhc3M6 +ICJiYW8tY2F0aGVhZCIsIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWNhdGRvdCI+PC9zcGFuPicg +KyBlc2MoYy5sYWJlbCkgfSkpOwogICAgICB2YXIgZ3JpZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi +YmFvLWdyaWQiIH0pOwogICAgICBsYWdlbi5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7IGdyaWQuYXBw +ZW5kQ2hpbGQobGFnZUNhcmQobCwgYykpOyB9KTsKICAgICAgc2VjLmFwcGVuZENoaWxkKGdyaWQp +OwogICAgICBkYXNoLmFwcGVuZENoaWxkKHNlYyk7CiAgICB9KTsKICAgIGJvZHlIb3N0LmFwcGVu +ZENoaWxkKGRhc2gpOwogICAgYm9keUhvc3Quc2Nyb2xsVG9wID0gMDsKICB9CgogIGZ1bmN0aW9u +IGxhZ2VDYXJkKGwsIGMpIHsKICAgIHZhciBjYXJkID0gZWwoImFydGljbGUiLCB7IGNsYXNzOiAi +YmFvLWNhcmQiLCBzdHlsZTogIi0tY2F0OiIgKyBjLmNvbG9yIH0pOwogICAgY2FyZC5hcHBlbmRD +aGlsZChlbCgiaGVhZGVyIiwgeyBjbGFzczogImJhby1jYXJkLWhlYWQiLCBodG1sOiAiPHN0cm9u +Zz4iICsgZXNjKGwubGFiZWwpICsgIjwvc3Ryb25nPiIsCiAgICAgIHRpdGxlOiBsLmxhYmVsLCBv +bmNsaWNrOiBmdW5jdGlvbiAoKSB7IG9wZW5MYWdlKGwua2V5KTsgfSB9KSk7CiAgICB2YXIgZG9j +cyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLWNhcmQtZG9jcyIgfSk7CiAgICBkb2NzLmFwcGVu +ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYmFvLWNhcmQtZG9jIGlzLWRlZmF1bHQiLCBo +dG1sOiAiw5xiZXJzaWNodCIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgb3BlbkxhZ2Uo +bC5rZXkpOyB9IH0pKTsKICAgIHZhciBmaXJzdCA9IChsLmdyb3VwcyAmJiBsLmdyb3Vwc1swXSkg +fHwgeyBkb2NzOiBbXSB9OwogICAgZmlyc3QuZG9jcy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7CiAg +ICAgIHZhciBuID0gbm9ybShkKTsKICAgICAgZG9jcy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwg +eyBjbGFzczogImJhby1jYXJkLWRvYyIsIGh0bWw6IGVzYyhuLmxhYmVsKSwKICAgICAgICBvbmNs +aWNrOiBmdW5jdGlvbiAoKSB7IG9wZW5MYWdlKGwua2V5LCBkKTsgfSB9KSk7CiAgICB9KTsKICAg +IGNhcmQuYXBwZW5kQ2hpbGQoZG9jcyk7CiAgICByZXR1cm4gY2FyZDsKICB9CgogIGZ1bmN0aW9u +IHNjcm9sbFRvQ2F0KGtleSkgeyB2YXIgbiA9IHJvb3QucXVlcnlTZWxlY3RvcigiI2Jhby1jYXQt +IiArIGtleSk7IGlmIChuKSBuLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICJzbW9vdGgiLCBi +bG9jazogInN0YXJ0IiB9KTsgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGFn +ZS1Xb3Jrc3BhY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICBmdW5jdGlvbiBvcGVu +TGFnZShsYWdlS2V5LCBvcGVuRG9jKSB7CiAgICB2YXIgbCA9IGxhZ2VCeUtleShsYWdlS2V5KTsg +aWYgKCFsKSByZXR1cm47CiAgICBzdGF0ZS52aWV3ID0gImxhZ2UiOyBzdGF0ZS5sYWdlID0gbDsK +ICAgIGJvZHlIb3N0LmlubmVySFRNTCA9ICIiOwogICAgdmFyIHdzID0gZWwoImRpdiIsIHsgY2xh +c3M6ICJiYW8td3MiLCBzdHlsZTogIi0tY2F0OiIgKyBjYXRDb2xvcihsLmNhdCkgfSk7CgogICAg +dmFyIG5hdiA9IGVsKCJhc2lkZSIsIHsgY2xhc3M6ICJiYW8td3MtbmF2IiB9KTsKICAgIG5hdi5h +cHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImJhby13cy1iYWNrIiwgaHRtbDogaWMo +ImJhY2siKSArICI8c3Bhbj5MYWdlbsO8YmVyc2ljaHQ8L3NwYW4+IiwKICAgICAgb25jbGljazog +ZnVuY3Rpb24gKCkgeyBzaG93RGFzaGJvYXJkKCk7IH0gfSkpOwogICAgbmF2LmFwcGVuZENoaWxk +KGVsKCJoMiIsIHsgY2xhc3M6ICJiYW8td3MtdGl0bGUiLCBodG1sOiBlc2MobC5sYWJlbCkgfSkp +OwoKICAgIHZhciBsaXN0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tZG9jbGlzdCIgfSk7CiAg +ICB2YXIgb3ZCdG4gPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJhby1kb2MgYmFvLWRvYy1vdiIs +CiAgICAgIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWRvYy1pYyI+JyArIGljKCJncmlkIikgKyAi +PC9zcGFuPjxzcGFuPsOcYmVyc2ljaHQ8L3NwYW4+IiwKICAgICAgb25jbGljazogZnVuY3Rpb24g +KCkgeyBzZXRBY3RpdmUob3ZCdG4pOyByZW5kZXJPdmVydmlldyhsKTsgfSB9KTsKICAgIGxpc3Qu +YXBwZW5kQ2hpbGQob3ZCdG4pOwogICAgKGwuZ3JvdXBzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9u +IChnKSB7CiAgICAgIGxpc3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tZG9j +bGlzdC1ncnAiLCBodG1sOiBlc2MoZy50aXRsZSkgfSkpOwogICAgICBnLmRvY3MuZm9yRWFjaChm +dW5jdGlvbiAoZCkgewogICAgICAgIHZhciBuID0gbm9ybShkKTsKICAgICAgICB2YXIgYiA9IGVs +KCJidXR0b24iLCB7IGNsYXNzOiAiYmFvLWRvYyIsCiAgICAgICAgICBodG1sOiAnPHNwYW4gY2xh +c3M9ImJhby1kb2MtaWMiPicgKyBpYyhuLmtpbmQgPT09ICJwZGYiID8gImRvYyIgOiAiYXJ0aWNs +ZSIpICsgIjwvc3Bhbj48c3Bhbj4iICsgZXNjKG4ubGFiZWwpICsgIjwvc3Bhbj4iLAogICAgICAg +ICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBzZXRBY3RpdmUoYik7IHJlbmRlckRvYyhkLCBkb2N1 +bWVudC5nZXRFbGVtZW50QnlJZCgiYmFvLWRpc3BsYXkiKSwgbC5sYWJlbCk7IH0gfSk7CiAgICAg +ICAgYi5fZG9jID0gZDsKICAgICAgICBsaXN0LmFwcGVuZENoaWxkKGIpOwogICAgICB9KTsKICAg +IH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGxpc3QpOwoKICAgIHdzLmFwcGVuZENoaWxkKG5hdik7 +CiAgICB3cy5hcHBlbmRDaGlsZChlbCgibWFpbiIsIHsgY2xhc3M6ICJiYW8td3MtbWFpbiIsIGlk +OiAiYmFvLWRpc3BsYXkiIH0pKTsKICAgIGJvZHlIb3N0LmFwcGVuZENoaWxkKHdzKTsKCiAgICBm +dW5jdGlvbiBzZXRBY3RpdmUoYnRuKSB7CiAgICAgIHZhciBicyA9IGxpc3QucXVlcnlTZWxlY3Rv +ckFsbCgiLmJhby1kb2MiKTsgZm9yICh2YXIgaSA9IDA7IGkgPCBicy5sZW5ndGg7IGkrKykgYnNb +aV0uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7CiAgICAgIGlmIChidG4pIGJ0bi5jbGFzc0xp +c3QuYWRkKCJhY3RpdmUiKTsKICAgIH0KCiAgICBpZiAob3BlbkRvYykgewogICAgICAvLyBnZXpp +ZWx0IGdlw7ZmZm5ldGVzIERva3VtZW50IGF1cyBkZW0gRGFzaGJvYXJkIGZpbmRlbiArIGFrdGl2 +IHNldHplbgogICAgICB2YXIgbWF0Y2ggPSBudWxsLCBicyA9IGxpc3QucXVlcnlTZWxlY3RvckFs +bCgiLmJhby1kb2MiKTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicy5sZW5ndGg7IGkrKykg +aWYgKGJzW2ldLl9kb2MgPT09IG9wZW5Eb2MpIHsgbWF0Y2ggPSBic1tpXTsgYnJlYWs7IH0KICAg +ICAgc2V0QWN0aXZlKG1hdGNoIHx8IG92QnRuKTsKICAgICAgcmVuZGVyRG9jKG9wZW5Eb2MsIGRv +Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJiYW8tZGlzcGxheSIpLCBsLmxhYmVsKTsKICAgIH0gZWxz +ZSB7CiAgICAgIHNldEFjdGl2ZShvdkJ0bik7CiAgICAgIHJlbmRlck92ZXJ2aWV3KGwpOwogICAg +fQogIH0KCiAgZnVuY3Rpb24gcmVuZGVyT3ZlcnZpZXcobCkgewogICAgdmFyIGhvc3QgPSBkb2N1 +bWVudC5nZXRFbGVtZW50QnlJZCgiYmFvLWRpc3BsYXkiKTsKICAgIGlmIChsLmRhc2gpIHJlbmRl +ckRhc2hib2FyZChsLCBob3N0KTsKICAgIGVsc2UgcmVuZGVyRG9jKHsgbDogIsOcYmVyc2ljaHQi +LCBhOiBsLm92ZXJ2aWV3IH0sIGhvc3QsIGwubGFiZWwpOwogIH0KCiAgLyogLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLSBEb2t1bWVudC1BbnplaWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +ICovCiAgZnVuY3Rpb24gYXJ0aWNsZUJvZHlOb2RlKGFydElkKSB7CiAgICB2YXIgYm9keSA9IEFS +VFthcnRJZF07CiAgICBpZiAoYm9keSA9PSBudWxsIHx8IGJvZHkgPT09ICIiKSByZXR1cm4gZWwo +ImRpdiIsIHsgY2xhc3M6ICJiYW8tYXJ0LW1pc3NpbmciLCBodG1sOiAiPHA+RGllc2VyIEluaGFs +dCBpc3Qgbm9jaCBuaWNodCBhbHMgbmF0aXZlciBBcnRpa2VsIGhpbnRlcmxlZ3QuPC9wPiIgfSk7 +CiAgICB2YXIgaG9sZGVyID0gZWwoImRpdiIsIHsgY2xhc3M6ICJiYW8tYXJ0LWJvZHkiIH0pOwog +ICAgaG9sZGVyLmlubmVySFRNTCA9IFAuc2FuaXRpemVIdG1sKGJvZHkpOyAgIC8vIFNpY2hlcmhl +aXRzLVBmbGljaHQ6IEFsbG93bGlzdAogICAgcmV0dXJuIGhvbGRlcjsKICB9CiAgZnVuY3Rpb24g +YnVpbGRBcnRpY2xlKGxhYmVsLCBhcnRJZCwgY29udGV4dCkgewogICAgdmFyIGFydCA9IGVsKCJh +cnRpY2xlIiwgeyBjbGFzczogImJhby1hcnRpY2xlIiB9KTsKICAgIGFydC5hcHBlbmRDaGlsZChl +bCgiaDEiLCB7IGh0bWw6IGVzYyhsYWJlbCkgKyAoY29udGV4dCA/ICcgPHNwYW4gY2xhc3M9ImJh +by1hcnQtY3R4Ij4nICsgZXNjKGNvbnRleHQpICsgIjwvc3Bhbj4iIDogIiIpIH0pKTsKICAgIGFy +dC5hcHBlbmRDaGlsZChhcnRpY2xlQm9keU5vZGUoYXJ0SWQpKTsKICAgIHJldHVybiBhcnQ7CiAg +fQogIGZ1bmN0aW9uIHBkZlBhbmUobikgewogICAgdmFyIGZyYWcgPSBkb2N1bWVudC5jcmVhdGVE +b2N1bWVudEZyYWdtZW50KCk7CiAgICB2YXIgZmlsZSA9IG4uZmlsZSArIChuLnBhZ2UgPyAiI3Bh +Z2U9IiArIG4ucGFnZSA6ICIiKTsKICAgIHZhciBiYXIgPSBlbCgiZGl2IiwgeyBjbGFzczogImJh +by1kb2NiYXIiIH0pOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImJh +by1kb2NiYXItdCIsIGh0bWw6IGVzYyhuLmxhYmVsKSB9KSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQo +ZWwoInNwYW4iLCB7IGNsYXNzOiAiYmFvLWRvY2Jhci1wYXRoIG1vbm8iLCBodG1sOiBlc2Mobi5m +aWxlKSB9KSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoImEiLCB7IGNsYXNzOiAiYnRuIGdob3N0 +IGJhby1kb2NiYXItb3BlbiIsIGhyZWY6IHNhZmVTcmMoZmlsZSksIHRhcmdldDogIl9ibGFuayIs +IHJlbDogIm5vb3BlbmVyIiwKICAgICAgaHRtbDogaWMoImV4dCIpICsgIjxzcGFuPk5ldWVyIFRh +Yjwvc3Bhbj4iIH0pKTsKICAgIGZyYWcuYXBwZW5kQ2hpbGQoYmFyKTsKICAgIGZyYWcuYXBwZW5k +Q2hpbGQoZWwoImlmcmFtZSIsIHsgY2xhc3M6ICJiYW8tcGRmIiwgc3JjOiBzYWZlU3JjKGZpbGUp +LCB0aXRsZTogbi5sYWJlbCB9KSk7CiAgICByZXR1cm4gZnJhZzsKICB9CgogIGZ1bmN0aW9uIHJl +bmRlckRvYyhkLCBob3N0LCBjb250ZXh0KSB7CiAgICBpZiAoIWhvc3QpIHJldHVybjsKICAgIGhv +c3QuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIgbiA9IG5vcm0oZCk7CiAgICBpZiAobi5raW5kID09 +PSAicGRmIikgaG9zdC5hcHBlbmRDaGlsZChwZGZQYW5lKG4pKTsKICAgIGVsc2UgeyBob3N0LmFw +cGVuZENoaWxkKGJ1aWxkQXJ0aWNsZShuLmxhYmVsLCBuLmFydCwgY29udGV4dCkpOyBob3N0LnNj +cm9sbFRvcCA9IDA7IH0KICB9CgogIC8qIFN0YW5kYXJkLcOcYmVyc2ljaHQgKHdpZSBPcmlnaW5h +bCk6IEVya2zDpHJ1bmcgbGlua3MgKyBHcnVuZHPDpHR6ZSArIENoZWNrbGlzdGUvT3JnYW5pZ3Jh +bW0gKi8KICBmdW5jdGlvbiByZW5kZXJEYXNoYm9hcmQobGFnZSwgaG9zdCkgewogICAgaWYgKCFo +b3N0KSByZXR1cm47CiAgICBob3N0LmlubmVySFRNTCA9ICIiOwogICAgdmFyIGRhc2ggPSBsYWdl +LmRhc2ggfHwge307CiAgICB2YXIgd3JhcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLWRhc2gz +IiB9KTsKCiAgICB2YXIgbWFpbkNvbCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYmFvLWRhc2gtbWFp +biIgfSk7CiAgICBtYWluQ29sLmFwcGVuZENoaWxkKGJ1aWxkQXJ0aWNsZSgiw5xiZXJzaWNodCIs +IGxhZ2Uub3ZlcnZpZXcsIGxhZ2UubGFiZWwpKTsKICAgIHdyYXAuYXBwZW5kQ2hpbGQobWFpbkNv +bCk7CgogICAgdmFyIHNpZGUgPSBlbCgiZGl2IiwgeyBjbGFzczogImJhby1kYXNoLXNpZGUiIH0p +OwogICAgdmFyIGcxID0gZWwoInNlY3Rpb24iLCB7IGNsYXNzOiAiYmFvLWRhc2gtY2FyZCIgfSk7 +CiAgICBnMS5hcHBlbmRDaGlsZChlbCgiaGVhZGVyIiwgeyBjbGFzczogImJhby1kYXNoLWNhcmQt +aCIsIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWRvYy1pYyI+JyArIGljKCJhcnRpY2xlIikgKyAi +PC9zcGFuPjxzcGFuPkdydW5kc8OkdHplPC9zcGFuPiIgfSkpOwogICAgdmFyIGdiID0gZWwoImRp +diIsIHsgY2xhc3M6ICJiYW8tZGFzaC1jYXJkLWIiIH0pOwogICAgZ2IuYXBwZW5kQ2hpbGQoYXJ0 +aWNsZUJvZHlOb2RlKGRhc2guZ3J1bmRzYWV0emUpKTsKICAgIGcxLmFwcGVuZENoaWxkKGdiKTsK +ICAgIHNpZGUuYXBwZW5kQ2hpbGQoZzEpOwoKICAgIGlmIChkYXNoLm9yZ2FuaWdyYW1tKSB7CiAg +ICAgIHZhciBnMiA9IGVsKCJzZWN0aW9uIiwgeyBjbGFzczogImJhby1kYXNoLWNhcmQgYmFvLWRh +c2gtY2FyZC1wZGYiIH0pOwogICAgICB2YXIgaDIgPSBlbCgiaGVhZGVyIiwgeyBjbGFzczogImJh +by1kYXNoLWNhcmQtaCIsIGh0bWw6ICc8c3BhbiBjbGFzcz0iYmFvLWRvYy1pYyI+JyArIGljKCJk +b2MiKSArICI8L3NwYW4+PHNwYW4+Q2hlY2tsaXN0ZSAvIE9yZ2FuaWdyYW1tPC9zcGFuPiIgfSk7 +CiAgICAgIGgyLmFwcGVuZENoaWxkKGVsKCJhIiwgeyBjbGFzczogImJ0biBnaG9zdCBiYW8tZGFz +aC1vcGVuIiwgaHJlZjogc2FmZVNyYyhkYXNoLm9yZ2FuaWdyYW1tKSwgdGFyZ2V0OiAiX2JsYW5r +IiwgcmVsOiAibm9vcGVuZXIiLCBodG1sOiBpYygiZXh0IikgKyAiPHNwYW4+TmV1ZXIgVGFiPC9z +cGFuPiIgfSkpOwogICAgICBnMi5hcHBlbmRDaGlsZChoMik7CiAgICAgIGcyLmFwcGVuZENoaWxk +KGVsKCJpZnJhbWUiLCB7IGNsYXNzOiAiYmFvLWRhc2gtcGRmIiwgc3JjOiBzYWZlU3JjKGRhc2gu +b3JnYW5pZ3JhbW0pLCB0aXRsZTogIkNoZWNrbGlzdGUgLyBPcmdhbmlncmFtbSIgfSkpOwogICAg +ICBzaWRlLmFwcGVuZENoaWxkKGcyKTsKICAgIH0KICAgIHdyYXAuYXBwZW5kQ2hpbGQoc2lkZSk7 +CiAgICBob3N0LmFwcGVuZENoaWxkKHdyYXApOwogICAgaG9zdC5zY3JvbGxUb3AgPSAwOwogIH0K +CiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEluZm8gLyBTZXJ2aWNlICYgS1NTVCAtLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gc2ltcGxlV29ya3NwYWNlKHRpdGxlLCBp +dGVtcywgcGljaywgc2VsKSB7CiAgICBzdGF0ZS52aWV3ID0gImluZm8iOwogICAgYm9keUhvc3Qu +aW5uZXJIVE1MID0gIiI7CiAgICB2YXIgd3MgPSBlbCgiZGl2IiwgeyBjbGFzczogImJhby13cyBi +YW8td3MtaW5mbyIgfSk7CiAgICB2YXIgbmF2ID0gZWwoImFzaWRlIiwgeyBjbGFzczogImJhby13 +cy1uYXYiIH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYmFv +LXdzLWJhY2siLCBodG1sOiBpYygiYmFjayIpICsgIjxzcGFuPkxhZ2Vuw7xiZXJzaWNodDwvc3Bh +bj4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHNob3dEYXNoYm9hcmQoKTsgfSB9KSk7 +CiAgICBuYXYuYXBwZW5kQ2hpbGQoZWwoImgyIiwgeyBjbGFzczogImJhby13cy10aXRsZSIsIGh0 +bWw6IGVzYyh0aXRsZSkgfSkpOwogICAgdmFyIGxpc3QgPSBlbCgiZGl2IiwgeyBjbGFzczogImJh +by1kb2NsaXN0IiB9KTsKICAgIGZ1bmN0aW9uIHNldEFjdGl2ZShidG4pIHsgdmFyIGJzID0gbGlz +dC5xdWVyeVNlbGVjdG9yQWxsKCIuYmFvLWRvYyIpOyBmb3IgKHZhciBpID0gMDsgaSA8IGJzLmxl +bmd0aDsgaSsrKSBic1tpXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKTsgaWYgKGJ0bikgYnRu +LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOyB9CiAgICBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChp +dCkgewogICAgICBpZiAoaXQuX2dycCkgeyBsaXN0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNs +YXNzOiAiYmFvLWRvY2xpc3QtZ3JwIiwgaHRtbDogZXNjKGl0Ll9ncnApIH0pKTsgcmV0dXJuOyB9 +CiAgICAgIHZhciBuID0gbm9ybShpdCk7CiAgICAgIHZhciBiID0gZWwoImJ1dHRvbiIsIHsgY2xh +c3M6ICJiYW8tZG9jIiwKICAgICAgICBodG1sOiAnPHNwYW4gY2xhc3M9ImJhby1kb2MtaWMiPicg +KyBpYyhuLmtpbmQgPT09ICJwZGYiID8gImRvYyIgOiAiYXJ0aWNsZSIpICsgIjwvc3Bhbj48c3Bh +bj4iICsgZXNjKG4ubGFiZWwpICsgKGl0LmFkZHIgPyAiPHNtYWxsPiIgKyBlc2MoaXQuYWRkcikg +KyAiPC9zbWFsbD4iIDogIiIpICsgIjwvc3Bhbj4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9u +ICgpIHsgc2V0QWN0aXZlKGIpOyByZW5kZXJEb2MoaXQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk +KCJiYW8tZGlzcGxheSIpLCB0aXRsZSk7IH0gfSk7CiAgICAgIGIuX2l0ID0gaXQ7CiAgICAgIGxp +c3QuYXBwZW5kQ2hpbGQoYik7CiAgICB9KTsKICAgIG5hdi5hcHBlbmRDaGlsZChsaXN0KTsKICAg +IHdzLmFwcGVuZENoaWxkKG5hdik7CiAgICB3cy5hcHBlbmRDaGlsZChlbCgibWFpbiIsIHsgY2xh +c3M6ICJiYW8td3MtbWFpbiIsIGlkOiAiYmFvLWRpc3BsYXkiIH0pKTsKICAgIGJvZHlIb3N0LmFw +cGVuZENoaWxkKHdzKTsKICAgIHZhciBmaXJzdCA9IG51bGwsIGJzID0gbGlzdC5xdWVyeVNlbGVj +dG9yQWxsKCIuYmFvLWRvYyIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicy5sZW5ndGg7IGkr +KykgaWYgKGJzW2ldLl9pdCA9PT0gc2VsKSB7IGZpcnN0ID0gYnNbaV07IGJyZWFrOyB9CiAgICAo +Zmlyc3QgfHwgYnNbMF0pICYmIChmaXJzdCB8fCBic1swXSkuY2xpY2soKTsKICB9CiAgZnVuY3Rp +b24gb3BlbkluZm8oc2VsKSB7IHNpbXBsZVdvcmtzcGFjZSgiSW5mbyAvIFNlcnZpY2UiLCBCQU8u +aW5mbywgbnVsbCwgc2VsKTsgfQogIGZ1bmN0aW9uIG9wZW5Lc3N0KHNlbCkgewogICAgdmFyIGl0 +ZW1zID0gW10sIGxhc3RHcnAgPSBudWxsOwogICAgKEJBTy5rc3N0IHx8IFtdKS5mb3JFYWNoKGZ1 +bmN0aW9uIChrKSB7IGlmIChrLmdyb3VwICE9PSBsYXN0R3JwKSB7IGl0ZW1zLnB1c2goeyBfZ3Jw +OiBrLmdyb3VwIH0pOyBsYXN0R3JwID0gay5ncm91cDsgfSBpdGVtcy5wdXNoKGspOyB9KTsKICAg +IHNpbXBsZVdvcmtzcGFjZSgiS3LDpGZ0ZXNhbW1lbHN0ZWxsZW4iLCBpdGVtcywgbnVsbCwgc2Vs +KTsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1vZHVzIGVpbi9hdXMg +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogIFAuZW50ZXJCYW8gPSBmdW5jdGlvbiAobGFn +ZUtleSwgb3BlbkRvYykgewogICAgZW5zdXJlUm9vdCgpOwogICAgZG9jdW1lbnQuYm9keS5jbGFz +c0xpc3QuYWRkKCJiYW8iKTsKICAgIHJvb3QuaGlkZGVuID0gZmFsc2U7CiAgICBQLmJhb0FjdGl2 +ZSA9IHRydWU7CiAgICBpZiAobGFnZUtleSkgb3BlbkxhZ2UobGFnZUtleSwgb3BlbkRvYyk7IGVs +c2Ugc2hvd0Rhc2hib2FyZCgpOwogICAgaWYgKFAuZW1pdCkgUC5lbWl0KCJiYW86ZW50ZXIiLCB7 +IGxhZ2U6IGxhZ2VLZXkgfHwgbnVsbCB9KTsKICB9OwogIFAuZXhpdEJhbyA9IGZ1bmN0aW9uICgp +IHsKICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgiYmFvIik7CiAgICBpZiAocm9v +dCkgcm9vdC5oaWRkZW4gPSB0cnVlOwogICAgUC5iYW9BY3RpdmUgPSBmYWxzZTsKICAgIGlmIChQ +LmVtaXQpIFAuZW1pdCgiYmFvOmV4aXQiKTsKICB9OwogIFAudG9nZ2xlQmFvID0gZnVuY3Rpb24g +KCkgeyBpZiAoUC5iYW9BY3RpdmUpIFAuZXhpdEJhbygpOyBlbHNlIFAuZW50ZXJCYW8oKTsgfTsK +CiAgZnVuY3Rpb24gd2lyZUVudHJ5KCkgeyB2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk +KCJiYW8tZW50ZXIiKTsgaWYgKGIgJiYgIWIuX3dpcmVkKSB7IGIuX3dpcmVkID0gdHJ1ZTsgYi5h +ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgUC5lbnRlckJhbygpOyB9KTsg +fSB9CiAgUC5vbiAmJiBQLm9uKCJyZW5kZXJlZCIsIHdpcmVFbnRyeSk7CiAgZG9jdW1lbnQuYWRk +RXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIHdpcmVFbnRyeSk7Cn0pKHdpbmRvdy5Q +KTsK +### FILE: assets/js/features/breadcrumbs.js | 2542 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvYnJlYWRjcnVtYnMu +anMgIChQaGFzZSA4KQogICBLbGlja2JhcmVyIEJyb3RrcnVtZW4tUGZhZCAoQmVyZWljaCDigLog +4oCmIOKAuiBBa3R1ZWxsKSBpbiBkZXIgRG9rdW1lbnQtLwogICBBcnRpa2VsYW5zaWNodC4gQmF1 +dCBkaWUgQWhuZW5rZXR0ZSBhdXMgUC5uYXZGaW5kIChFbHRlcm4gKyBTZWN0aW9uKSB1bmQKICAg +cmVuZGVydCBzaWUgaW4gI2N2LXBhdGguIFJlaW4gY2xpZW50c2VpdGlnIOKAlCBmdW5rdGlvbmll +cnQgYXVjaCBmw7xyIExlc2VyCiAgIChmaWxlOi8vKS4gVW1ow7xsbHQgUC5uYXZpZ2F0ZSwgb2hu +ZSBuYXYuanMgenUgw6RuZGVybi4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewog +ICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWM7CgogIGZ1 +bmN0aW9uIHJlc29sdmUoaXQpIHsgcmV0dXJuIFAucmVzb2x2ZVJlZiA/IFAucmVzb2x2ZVJlZihp +dCkgOiBpdDsgfQogIGZ1bmN0aW9uIG5hdmlnYWJsZShpdCkgewogICAgdmFyIGQgPSByZXNvbHZl +KGl0KTsKICAgIHJldHVybiAhIShkICYmIChkLmFydGljbGUgfHwgKGQuaHJlZiAmJiBkLnRhcmdl +dCAhPT0gIl9ibGFuayIgJiYgIS9ebWFpbHRvOi9pLnRlc3QoZC5ocmVmKSkpKTsKICB9CiAgZnVu +Y3Rpb24gY2hhaW4oaXQpIHsKICAgIHZhciBpdGVtcyA9IFtdLCBjdXIgPSBpdCwgZ3VhcmQgPSAw +OwogICAgdmFyIGYgPSBQLm5hdkZpbmQgPyBQLm5hdkZpbmQoaXQpIDogbnVsbDsgICAvLyBBaG5l +bmtldHRlIGFtIEFuemVpZ2VvcnQgKGF1Y2ggZnVlciBWZXJ3ZWlzLUtub3RlbikKICAgIHdoaWxl +IChjdXIgJiYgZ3VhcmQrKyA8IDI0KSB7IGl0ZW1zLnVuc2hpZnQoY3VyKTsgdmFyIGZmID0gUC5u +YXZGaW5kID8gUC5uYXZGaW5kKGN1cikgOiBudWxsOyBjdXIgPSBmZiA/IGZmLnBhcmVudCA6IG51 +bGw7IH0KICAgIHJldHVybiB7IHNlY3Rpb246IGYgPyBmLnNlY3Rpb24gOiBudWxsLCBpdGVtczog +aXRlbXMgfTsKICB9CiAgZnVuY3Rpb24gbGJsKG5vZGUpIHsgdmFyIGQgPSByZXNvbHZlKG5vZGUp +OyByZXR1cm4gbm9kZS5sYWJlbCB8fCAoZCAmJiAoZC5sYWJlbCB8fCAoZC5hcnRpY2xlICYmIGQu +YXJ0aWNsZS50aXRsZSkpKSB8fCAi4oCmIjsgfQoKICBQLnJlbmRlckNydW1icyA9IGZ1bmN0aW9u +IChpdCkgewogICAgdmFyIGhvc3QgPSAkKCIjY3YtcGF0aCIpOyBpZiAoIWhvc3QpIHJldHVybjsK +ICAgIGhvc3QuaW5uZXJIVE1MID0gIiI7IGhvc3Quc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwg +IkJyb3RrcnVtZW4iKTsKICAgIGlmICghbmF2aWdhYmxlKGl0KSkgeyBob3N0LnRleHRDb250ZW50 +ID0gaXQgJiYgaXQubGFiZWwgPyBpdC5sYWJlbCA6ICIiOyByZXR1cm47IH0KICAgIHZhciBjID0g +Y2hhaW4oaXQpOwogICAgZnVuY3Rpb24gc2VwKCkgeyByZXR1cm4gZWwoInNwYW4iLCB7IGNsYXNz +OiAiY3J1bWItc2VwIiwgaHRtbDogaWMoImNoZXYiKSB9KTsgfQogICAgaWYgKGMuc2VjdGlvbikg +aG9zdC5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJjcnVtYiBjcnVtYi1zZWMiLCB0 +ZXh0OiBjLnNlY3Rpb24udGl0bGUgfHwgIiIgfSkpOwogICAgYy5pdGVtcy5mb3JFYWNoKGZ1bmN0 +aW9uIChub2RlLCBpKSB7CiAgICAgIGlmIChjLnNlY3Rpb24gfHwgaSA+IDApIGhvc3QuYXBwZW5k +Q2hpbGQoc2VwKCkpOwogICAgICB2YXIgbGFzdCA9IGkgPT09IGMuaXRlbXMubGVuZ3RoIC0gMTsK +ICAgICAgaWYgKGxhc3QpIGhvc3QuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiY3J1 +bWIgY3J1bWItY3VyIiwgImFyaWEtY3VycmVudCI6ICJwYWdlIiwgdGV4dDogbGJsKG5vZGUpIH0p +KTsKICAgICAgZWxzZSBpZiAobmF2aWdhYmxlKG5vZGUpKSBob3N0LmFwcGVuZENoaWxkKGVsKCJh +IiwgeyBjbGFzczogImNydW1iIiwgaHJlZjogIiMiLCB0ZXh0OiBsYmwobm9kZSksCiAgICAgICAg +b25jbGljazogZnVuY3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBQLm5hdmlnYXRlKG5v +ZGUpOyB9IH0pKTsKICAgICAgZWxzZSBob3N0LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFz +czogImNydW1iIiwgdGV4dDogbGJsKG5vZGUpIH0pKTsKICAgIH0pOwogIH07CgogIC8vIFAubmF2 +aWdhdGUgdW1ow7xsbGVuOiBha3R1ZWxsZXMgSXRlbSBtZXJrZW4gKyBCcm90a3J1bWVuIG5hY2gg +QW5zaWNodHN3ZWNoc2VsIHJlbmRlcm4uCiAgaWYgKFAubmF2aWdhdGUpIHsKICAgIHZhciBfbmF2 +aWdhdGUgPSBQLm5hdmlnYXRlOwogICAgUC5uYXZpZ2F0ZSA9IGZ1bmN0aW9uIChpdCkgeyBQLmN1 +ck5hdkl0ZW0gPSBpdDsgX25hdmlnYXRlKGl0KTsgaWYgKG5hdmlnYWJsZShpdCkpIFAucmVuZGVy +Q3J1bWJzKGl0KTsgfTsKICB9Cgp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/features/commands.js | 4046 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvY29tbWFuZHMuanMK +ICAgQmVmZWhsZSBmw7xyIGRpZSBLb21tYW5kby1QYWxldHRlIChTdHJnK0spLiBTcGVpc3QgZGll +IGJlc3RlaGVuZGUgU3VjaGUKICAgKFtzZWFyY2guanNdKSBtaXQgYXVzZsO8aHJiYXJlbiBBa3Rp +b25lbiDigJQga2VpbiBlaWdlbmVzIFVJLVN5c3RlbS4KICAgUm9sbGVuLS9Lb250ZXh0LUZpbHRl +ciB2aWEgcmVxKCkuIEzDpGR0IG5hY2ggc2VhcmNoLmpzLCB2b3IgbWFpbi5qcy4KICAgPT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKCiAgLy8gQmVmZWhscy1E +ZWZpbml0aW9uZW4uIHJlcSgpID0gbnVyIGFuemVpZ2VuLCB3ZW5uIGVyZsO8bGx0OyB0b3AgPSBp +bSBMZWVyenVzdGFuZC4KICBmdW5jdGlvbiBkZWZzKCkgewogICAgcmV0dXJuIFsKICAgICAgeyBs +YWJlbDogIk5ldWUgTWVsZHVuZyIsIGhpbnQ6ICJNZWxkdW5nIGltIEZlZWQgYW5sZWdlbiIsIGlj +b246ICJwbHVzIiwgdG9wOiB0cnVlLAogICAgICAgIHJ1bjogZnVuY3Rpb24gKCkgeyBpZiAoUC5v +cGVuQnVsbGV0aW5EbGcpIFAub3BlbkJ1bGxldGluRGxnKG51bGwpOyB9LCByZXE6IGZ1bmN0aW9u +ICgpIHsgcmV0dXJuIFAuY2FuRWRpdCAmJiBQLmNhbkVkaXQoKTsgfSB9LAogICAgICB7IGxhYmVs +OiAiTWVsZHVuZ2VuIGltcG9ydGllcmVuIiwgaGludDogIk1laHJlcmUgQmVpdHLDpGdlIHBlciBU +ZXh0IGVpbmbDvGdlbiAoRGF0dW0vVGl0ZWwvVGV4dCkiLCBpY29uOiAiZG93bmxvYWQiLAogICAg +ICAgIHJ1bjogZnVuY3Rpb24gKCkgeyBpZiAoUC5vcGVuTmV3c0ltcG9ydCkgUC5vcGVuTmV3c0lt +cG9ydCgpOyB9LCByZXE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFAuY2FuRWRpdCAmJiBQLmNhbkVk +aXQoKTsgfSB9LAogICAgICB7IGxhYmVsOiAiTmV1ZXIgQXJ0aWtlbCIsIGhpbnQ6ICJXaXNzZW5z +YXJ0aWtlbCBhbmxlZ2VuIiwgaWNvbjogImFydGljbGUiLCB0b3A6IHRydWUsCiAgICAgICAgcnVu +OiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5BcnRpY2xlRGxnKSBQLm9wZW5BcnRpY2xlRGxnKG51 +bGwpOyB9LCByZXE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFAuY2FuRWRpdCAmJiBQLmNhbkVkaXQo +KTsgfSB9LAogICAgICB7IGxhYmVsOiAiQXJ0aWtlbCBrb3BpZXJlbiAobWl0IEJpbGRlcm4pIiwg +aGludDogIkluaGFsdCBpbiBkaWUgWndpc2NoZW5hYmxhZ2Ug4oCTIHdvYW5kZXJzIG1pdCBTdHJn +K1YgZWluZsO8Z2VuIiwgaWNvbjogImRvYyIsCiAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7IGlm +IChQLmNvcHlBcnRpY2xlKSBQLmNvcHlBcnRpY2xlKCk7IH0sIHJlcTogZnVuY3Rpb24gKCkgeyBy +ZXR1cm4gISFQLmN1ckFydGljbGU7IH0gfSwKICAgICAgeyBsYWJlbDogIkxhZ2Ugc2V0emVuIiwg +aGludDogIkFrdHVlbGxlbiBMYWdlLVN0YXR1cyDDpG5kZXJuIiwgaWNvbjogImFsZXJ0IiwKICAg +ICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAuZWRpdExhZ2UpIFAuZWRpdExhZ2UoKTsgfSwg +cmVxOiBmdW5jdGlvbiAoKSB7IHJldHVybiAhIVAubGl2ZTsgfSB9LAogICAgICB7IGxhYmVsOiAi +QeKAk1otUmVnaXN0ZXIgw7ZmZm5lbiIsIGhpbnQ6ICJTdGljaHdvcnR2ZXJ6ZWljaG5pcyIsIGlj +b246ICJheiIsIHRvcDogdHJ1ZSwKICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAub3Bl +bkFaKSBQLm9wZW5BWigpOyB9IH0sCiAgICAgIHsgbGFiZWw6ICJIZWxsLS9EdW5rZWwtRGVzaWdu +IHVtc2NoYWx0ZW4iLCBoaW50OiAiVGhlbWUgd2VjaHNlbG4iLCBpY29uOiAic3VuIiwgdG9wOiB0 +cnVlLAogICAgICAgIHJ1bjogZnVuY3Rpb24gKCkgeyBpZiAoUC50b2dnbGVUaGVtZSkgUC50b2dn +bGVUaGVtZSgpOyB9IH0sCiAgICAgIHsgbGFiZWw6ICJJbXByZXNzdW0gJiBTdXBwb3J0IiwgaGlu +dDogIkltcHJlc3N1bSwgQW5zcHJlY2hwYXJ0bmVyICYgU3VwcG9ydC1BbmZyYWdlIHBlciBFLU1h +aWwiLCBpY29uOiAic2hpZWxkIiwKICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAub3Bl +bkltcHJlc3N1bSkgUC5vcGVuSW1wcmVzc3VtKCk7IH0gfSwKICAgICAgeyBsYWJlbDogIkRhdGVu +cGZsZWdlIHVtc2NoYWx0ZW4iLCBoaW50OiAiQmVhcmJlaXRlbi1Nb2R1cyIsIGljb246ICJlZGl0 +IiwKICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsgaWYgKFAudG9nZ2xlRWRpdCkgUC50b2dnbGVF +ZGl0KCk7IH0sIHJlcTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUC5yb2xlICYmIFAucm9sZSAhPT0g +InJlYWRlciI7IH0gfSwKICAgICAgeyBsYWJlbDogIkFkbWluLVdlcmt6ZXVnZSIsIGhpbnQ6ICJW +ZXJzaW9uZW4sIEVpbnN0ZWxsdW5nZW4sIFJvbGxlbiwgTmF2aWdhdGlvbiIsIGljb246ICJzaGll +bGQiLCB0b3A6IHRydWUsCiAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5BZG1p +bkh1YikgUC5vcGVuQWRtaW5IdWIoKTsgfSwgcmVxOiBmdW5jdGlvbiAoKSB7IHJldHVybiBQLmlz +QWRtaW4gJiYgUC5pc0FkbWluKCk7IH0gfSwKICAgICAgeyBsYWJlbDogIkxpbmstUHLDvGZ1bmci +LCBoaW50OiAiRmVobGVuZGUgRGF0ZWktTGlua3MgZXJrZW5uZW4gJiBhdWZsaXN0ZW4iLCBpY29u +OiAibGluayIsCiAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5MaW5rUmVwb3J0 +KSBQLm9wZW5MaW5rUmVwb3J0KCk7IH0sIHJlcTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUC5yb2xl +ICYmIFAucm9sZSAhPT0gInJlYWRlciI7IH0gfSwKICAgICAgeyBsYWJlbDogIkFsdC1Eb2t1bWVu +dGUgbWlncmllcmVuIiwgaGludDogIldvcmQvRXhjZWwtSFRNTCBpbiBlZGl0aWVyYmFyZSBBcnRp +a2VsIMO8YmVyZsO8aHJlbiIsIGljb246ICJhcnRpY2xlIiwKICAgICAgICBydW46IGZ1bmN0aW9u +ICgpIHsgaWYgKFAub3Blbk1pZ3JhdGlvblBhbmVsKSBQLm9wZW5NaWdyYXRpb25QYW5lbCgpOyB9 +LCByZXE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFAuaXNBZG1pbiAmJiBQLmlzQWRtaW4oKTsgfSB9 +CiAgICBdOwogIH0KCiAgLy8gVmVyZsO8Z2JhcmUgQmVmZWhsZSAobmFjaCByZXEgZ2VmaWx0ZXJ0 +KSwgbWl0IFN1Y2h0ZXh0IGFuZ2VyZWljaGVydC4KICBmdW5jdGlvbiBhdmFpbCgpIHsKICAgIHJl +dHVybiBkZWZzKCkuZmlsdGVyKGZ1bmN0aW9uIChjKSB7IHJldHVybiAhYy5yZXEgfHwgYy5yZXEo +KTsgfSkKICAgICAgLm1hcChmdW5jdGlvbiAoYykgeyBjLmhheSA9IFAuZGVhY2NlbnQoYy5sYWJl +bCArICIgIiArIChjLmhpbnQgfHwgIiIpKTsgcmV0dXJuIGM7IH0pOwogIH0KCiAgLy8gU3VjaC1T +Y2huaXR0c3RlbGxlIGbDvHIgc2VhcmNoLmpzOiBhbGxlIFRva2VucyBtw7xzc2VuIGltIEJlZmVo +bHN0ZXh0IHN0ZWNrZW4uCiAgUC5zZWFyY2hDb21tYW5kcyA9IGZ1bmN0aW9uICh0b2tzLCBucSkg +ewogICAgcmV0dXJuIGF2YWlsKCkuZmlsdGVyKGZ1bmN0aW9uIChjKSB7IHJldHVybiB0b2tzLmV2 +ZXJ5KGZ1bmN0aW9uICh0KSB7IHJldHVybiBjLmhheS5pbmRleE9mKHQpID49IDA7IH0pOyB9KTsK +ICB9OwogIC8vIExlZXJ6dXN0YW5kIGRlciBQYWxldHRlOiBkaWUgd2ljaHRpZ3N0ZW4gQmVmZWhs +ZS4KICBQLnRvcENvbW1hbmRzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gYXZhaWwoKS5maWx0ZXIo +ZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMudG9wOyB9KTsgfTsKCiAgLy8gRm9rdXMgYXVmIGRhcyBs +ZWVyZSBTdWNoZmVsZCDDtmZmbmV0IGRpZSBQYWxldHRlIG1pdCBkZW4gVG9wLUJlZmVobGVuLgog +IHZhciBpbnAgPSBQLiQoIiNzZWFyY2gtaW5wdXQiKTsKICBpZiAoaW5wKSBpbnAuYWRkRXZlbnRM +aXN0ZW5lcigiZm9jdXMiLCBmdW5jdGlvbiAoKSB7IGlmICghaW5wLnZhbHVlLnRyaW0oKSAmJiBQ +LnJlbmRlclJlc3VsdHMpIFAucmVuZGVyUmVzdWx0cygiIik7IH0pOwoKfSkod2luZG93LlApOwo= +### FILE: assets/js/features/feed.js | 12513 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVlZC5qcwogICBNaXR0bGVyZSBT +cGFsdGU6IE1lbGR1bmdzLUZlZWQgKEJ1bGxldGlucykgKyBCZWFyYmVpdGVuLURpYWxvZy4KICAg +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwg +PSBQLmVsLCAkID0gUC4kLCBpYyA9IFAuaWMsIGVzY2FwZUh0bWwgPSBQLmVzY2FwZUh0bWwsIGRl +YWNjZW50ID0gUC5kZWFjY2VudDsKCiAgdmFyIGZlZWRRdWVyeSA9ICIiOwogIFAuc2V0RmVlZFF1 +ZXJ5ID0gZnVuY3Rpb24gKHEpIHsgZmVlZFF1ZXJ5ID0gcTsgUC5yZW5kZXJGZWVkKCk7IH07Cgog +IGZ1bmN0aW9uIGlzTmV3KGIpIHsgcmV0dXJuIG5ldyBEYXRlKGIudXBkYXRlZCB8fCBiLmNyZWF0 +ZWQgfHwgYi5kYXRlKS5nZXRUaW1lKCkgPiBQLmxhc3RWaXNpdDsgfQogIGZ1bmN0aW9uIG1kSW5s +aW5lKHMpIHsKICAgIHJldHVybiBlc2NhcGVIdG1sKHMpLnJlcGxhY2UoL1wqXCooLis/KVwqXCov +ZywgIjxzdHJvbmc+JDE8L3N0cm9uZz4iKQogICAgICAvLyBNYXJrZG93bi1MaW5rOiBVUkwgZ2Vn +ZW4gZGllIFNjaGVtYS1BbGxvd2xpc3QgcHJ1ZWZlbiAoUC5zYWZlVXJsKSDigJQgdW5zaWNoZXJl +CiAgICAgIC8vIFNjaGVtYXRhIChqYXZhc2NyaXB0Oi9kYXRhOi9maWxlOiDigKYpIE5JQ0hUIGFs +cyA8YT4gcmVuZGVybiwgbnVyIGRlbiBUZXh0IHplaWdlbi4KICAgICAgLnJlcGxhY2UoL1xbKFte +XF1dKylcXVwoKFteKV0rKVwpL2csIGZ1bmN0aW9uIChtLCB0ZXh0LCB1cmwpIHsKICAgICAgICB2 +YXIgc2FmZSA9IFAuc2FmZVVybCh1cmwpOwogICAgICAgIHJldHVybiBzYWZlID8gJzxhIGhyZWY9 +IicgKyBzYWZlICsgJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicgKyB0ZXh0ICsg +IjwvYT4iIDogdGV4dDsKICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIGJ1bGxldEVsKGIpIHsKICAg +IHZhciBjYXJkID0gZWwoImFydGljbGUiLCB7IGNsYXNzOiAiYnVsbCIgKyAoYi5waW5uZWQgPyAi +IHBpbm5lZCIgOiAiIikgKyAoYi5obCA/ICIgaGwtIiArIGIuaGwgOiAiIiksICJkYXRhLWJpZCI6 +IChiLmlkIHx8IGIudGl0bGUpIH0pOwogICAgaWYgKGlzTmV3KGIpKSBjYXJkLmFwcGVuZENoaWxk +KGVsKCJzcGFuIiwgeyBjbGFzczogImJ1bGwtbmV3IiB9LCBbZWwoInNwYW4iLCB7IGNsYXNzOiAi +YmFkZ2UgbmV1IiwgdGV4dDogIk5FVSIgfSldKSk7CiAgICB2YXIgdG9wID0gZWwoImRpdiIsIHsg +Y2xhc3M6ICJidWxsLXRvcCIgfSwgWwogICAgICBlbCgic3BhbiIsIHsgY2xhc3M6ICJidWxsLWRh +dGUgbW9ubyIsIHRleHQ6IFAuZm10RGF0ZShiLmRhdGUpIH0pCiAgICBdKTsKICAgIHRvcC5hcHBl +bmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJidWxsLXNwYWNlciIgfSkpOwogICAgdmFyIGFj +dHMgPSBlbCgiZGl2IiwgeyBjbGFzczogImJ1bGwtYWN0aW9ucyIgfSk7CiAgICBhY3RzLmFwcGVu +ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibWluaS1idG4gZWRpdC1vbmx5IiArIChiLnBp +bm5lZCA/ICIgb24iIDogIiIpLCB0aXRsZTogYi5waW5uZWQgPyAiTMO2c2VuIiA6ICJBbnBpbm5l +biIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgYi5waW5uZWQgPSAhYi5waW5uZWQ7IFAu +cGVyc2lzdCgpOyBQLnJlbmRlckZlZWQoKTsgfSwgaHRtbDogaWMoInBpbiIpIH0pKTsKICAgIGFj +dHMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJtaW5pLWJ0biBlZGl0LW9ubHki +LCB0aXRsZTogIkJlYXJiZWl0ZW4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFAub3Bl +bkJ1bGxldGluRGxnKGIpOyB9LCBodG1sOiBpYygiZWRpdCIpIH0pKTsKICAgIGFjdHMuYXBwZW5k +Q2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJtaW5pLWJ0biBkYW5nZXIgZWRpdC1vbmx5Iiwg +dGl0bGU6ICJMw7ZzY2hlbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5jb25maXJt +KCJNZWxkdW5nIOKAniIgKyBiLnRpdGxlICsgIuKAnCBsw7ZzY2hlbj8iLCBmdW5jdGlvbiAoKSB7 +IFAuY29udGVudC5idWxsZXRpbnMgPSBQLmNvbnRlbnQuYnVsbGV0aW5zLmZpbHRlcihmdW5jdGlv +biAoeCkgeyByZXR1cm4geCAhPT0gYjsgfSk7IFAucGVyc2lzdCgpOyBQLnJlbmRlckZlZWQoKTsg +fSwgeyBkYW5nZXI6IHRydWUgfSk7IH0sIGh0bWw6IGljKCJ0cmFzaCIpIH0pKTsKICAgIHRvcC5h +cHBlbmRDaGlsZChhY3RzKTsKICAgIGNhcmQuYXBwZW5kQ2hpbGQodG9wKTsKICAgIGNhcmQuYXBw +ZW5kQ2hpbGQoZWwoImgzIiwgeyB0ZXh0OiBiLnRpdGxlIH0pKTsKICAgIGNhcmQuYXBwZW5kQ2hp +bGQoZWwoImRpdiIsIHsgY2xhc3M6ICJib2R5IiwgaHRtbDogbWRJbmxpbmUoYi5ib2R5IHx8ICIi +KSB9KSk7CiAgICB2YXIgbWV0YSA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYnVsbC1tZXRhIiB9KTsK +ICAgIGlmIChiLmF1dGhvcikgbWV0YS5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJ3 +aG8iLCBodG1sOiBpYygidXNlciIpICsgIjxzcGFuPiIgKyBlc2NhcGVIdG1sKGIuYXV0aG9yKSAr +ICI8L3NwYW4+IiB9KSk7CiAgICBpZiAoYi51cGRhdGVkICYmIGIudXBkYXRlZCAhPT0gYi5jcmVh +dGVkKSBtZXRhLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm1vbm8iLCB0ZXh0OiAi +YWt0LiAiICsgUC5mbXREYXRlKGIudXBkYXRlZCkgfSkpOwogICAgY2FyZC5hcHBlbmRDaGlsZCht +ZXRhKTsKICAgIHJldHVybiBjYXJkOwogIH0KICBQLnJlbmRlckZlZWQgPSBmdW5jdGlvbiAoKSB7 +CiAgICB2YXIgaG9zdCA9ICQoIiNmZWVkIik7IGhvc3QuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIg +cSA9IGRlYWNjZW50KGZlZWRRdWVyeS50cmltKCkpOwogICAgdmFyIGxpc3QgPSBQLmNvbnRlbnQu +YnVsbGV0aW5zLmZpbHRlcihmdW5jdGlvbiAoYikgewogICAgICBpZiAocSkgcmV0dXJuIGRlYWNj +ZW50KGIudGl0bGUgKyAiICIgKyBiLmJvZHkgKyAiICIgKyAoYi5hdXRob3IgfHwgIiIpKS5pbmRl +eE9mKHEpID49IDA7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSk7CiAgICBsaXN0LnNvcnQoZnVu +Y3Rpb24gKGEsIGIpIHsgcmV0dXJuIG5ldyBEYXRlKGIuZGF0ZSkgLSBuZXcgRGF0ZShhLmRhdGUp +IHx8IDA7IH0pOwogICAgdmFyIHBpbm5lZCA9IGxpc3QuZmlsdGVyKGZ1bmN0aW9uIChiKSB7IHJl +dHVybiBiLnBpbm5lZDsgfSk7CiAgICB2YXIgcmVzdCA9IGxpc3QuZmlsdGVyKGZ1bmN0aW9uIChi +KSB7IHJldHVybiAhYi5waW5uZWQ7IH0pOwogICAgaWYgKCFsaXN0Lmxlbmd0aCkgewogICAgICBo +b3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiZmVlZC1lbXB0eSIsIGh0bWw6IGlj +KCJpbmJveCIpICsgIjxkaXY+IiArIFAuZXNjYXBlSHRtbChQLnQoImZlZWQuZW1wdHkiKSkgKyAo +ZmVlZFF1ZXJ5ID8gIiBmw7xyIGRpZXNlIEF1c3dhaGwiIDogIiIpICsgIi48L2Rpdj4iIH0pKTsK +ICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHBpbm5lZC5sZW5ndGgpIHsKICAgICAgaG9zdC5h +cHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImZlZWQtc2VjdGlvbi1sYWJlbCIsIGh0bWw6 +IGljKCJwaW4iKSArIFAuZXNjYXBlSHRtbChQLnQoImNvY2twaXQucGlubmVkIikpIH0pKTsKICAg +ICAgcGlubmVkLmZvckVhY2goZnVuY3Rpb24gKGIpIHsgaG9zdC5hcHBlbmRDaGlsZChidWxsZXRF +bChiKSk7IH0pOwogICAgICBpZiAocmVzdC5sZW5ndGgpIGhvc3QuYXBwZW5kQ2hpbGQoZWwoImRp +diIsIHsgY2xhc3M6ICJmZWVkLXNlY3Rpb24tbGFiZWwiLCBodG1sOiBpYygiY2xvY2siKSArIFAu +ZXNjYXBlSHRtbChQLnQoImZlZWQuY2hyb25pY2xlIikpIH0pKTsKICAgIH0KICAgIHJlc3QuZm9y +RWFjaChmdW5jdGlvbiAoYikgeyBob3N0LmFwcGVuZENoaWxkKGJ1bGxldEVsKGIpKTsgfSk7CiAg +fTsKICBQLmZsYXNoQnVsbGV0aW4gPSBmdW5jdGlvbiAoYikgewogICAgUC5jbG9zZURvYygpOyBm +ZWVkUXVlcnkgPSAiIjsgdmFyIGZzaSA9ICQoIiNmZWVkLXNlYXJjaC1pbnB1dCIpOyBpZiAoZnNp +KSBmc2kudmFsdWUgPSAiIjsgUC5yZW5kZXJGZWVkKCk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u +ICgpIHsKICAgICAgUC4kJCgiI2ZlZWQgLmJ1bGwiKS5mb3JFYWNoKGZ1bmN0aW9uIChuZCkgewog +ICAgICAgIGlmICgkKCJoMyIsIG5kKSAmJiAkKCJoMyIsIG5kKS50ZXh0Q29udGVudCA9PT0gYi50 +aXRsZSkgewogICAgICAgICAgbmQuY2xhc3NMaXN0LmFkZCgiZmxhc2giKTsKICAgICAgICAgIHZh +ciBzYyA9ICQoIiNmZWVkLXNjcm9sbCIpOyBzYy5zY3JvbGxUbyh7IHRvcDogbmQub2Zmc2V0VG9w +IC0gMjAsIGJlaGF2aW9yOiAic21vb3RoIiB9KTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp +b24gKCkgeyBuZC5jbGFzc0xpc3QucmVtb3ZlKCJmbGFzaCIpOyB9LCAxNjAwKTsKICAgICAgICB9 +CiAgICAgIH0pOwogICAgfSwgNDApOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJ1bGxldGluLURpYWxvZyAqLwog +IHZhciBlZGl0aW5nQnVsbCA9IG51bGwsIGRsZ1BpbiA9IGZhbHNlLCBkbGdIbCA9ICIiOwogIC8v +IEZlc3RlIFN0dWZlbjsgZGllIEZBUkJFTiBzaW5kIGRhdGVuZ2V0cmllYmVuICgtLWhsLSogdmlh +IEVpbnN0ZWxsdW5nZW4gLT4gRmFyYi1Ub2tlbnMpLgogIHZhciBITF9MRVZFTFMgPSBbCiAgICB7 +IHY6ICIiLCBsYWJlbDogIk5ldXRyYWwiIH0sCiAgICB7IHY6ICJpbmZvIiwgbGFiZWw6ICJIZWxs +YmxhdSIgfSwKICAgIHsgdjogImFsZXJ0IiwgbGFiZWw6ICJIZWxscm90IiB9LAogICAgeyB2OiAi +dXJnZW50IiwgbGFiZWw6ICJXaWNodGlnIChwdWxzaWVydCkiIH0KICBdOwogIGZ1bmN0aW9uIHJl +bmRlckhsUGljaygpIHsKICAgIHZhciBib3ggPSAkKCIjYmYtaGwiKTsgaWYgKCFib3gpIHJldHVy +bjsgYm94LmlubmVySFRNTCA9ICIiOwogICAgSExfTEVWRUxTLmZvckVhY2goZnVuY3Rpb24gKG8p +IHsKICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLAog +ICAgICAgIGNsYXNzOiAiaGwtb3B0IGhsLSIgKyAoby52IHx8ICJuZXV0cmFsIikgKyAoZGxnSGwg +PT09IG8udiA/ICIgc2VsIiA6ICIiKSwKICAgICAgICB0ZXh0OiBvLmxhYmVsLCBvbmNsaWNrOiBm +dW5jdGlvbiAoKSB7IGRsZ0hsID0gby52OyByZW5kZXJIbFBpY2soKTsgfSB9KSk7CiAgICB9KTsK +ICB9CiAgUC5vcGVuQnVsbGV0aW5EbGcgPSBmdW5jdGlvbiAoYikgewogICAgZWRpdGluZ0J1bGwg +PSBiIHx8IG51bGw7CiAgICB2YXIgaXNOZXdCID0gIWI7CiAgICAkKCIjYmQtdGl0bGUiKS50ZXh0 +Q29udGVudCA9IGlzTmV3QiA/IFAudCgiZmVlZC5uZXciKSA6IFAudCgiZmVlZC5lZGl0Iik7CiAg +ICAkKCIjYmYtdGl0bGUiKS52YWx1ZSA9IGIgPyBiLnRpdGxlIDogIiI7CiAgICAkKCIjYmYtYm9k +eSIpLnZhbHVlID0gYiA/IGIuYm9keSA6ICIiOwogICAgJCgiI2JmLWRhdGUiKS52YWx1ZSA9IGIg +PyBTdHJpbmcoYi5kYXRlKS5zbGljZSgwLCAxMCkgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCku +c2xpY2UoMCwgMTApOwogICAgJCgiI2JmLWF1dGhvciIpLnZhbHVlID0gYiA/IChiLmF1dGhvciB8 +fCAiIikgOiAiIjsKICAgIGRsZ1BpbiA9IGIgPyAhIWIucGlubmVkIDogZmFsc2U7CiAgICByZW5k +ZXJQaW5Td2l0Y2goKTsKICAgIGRsZ0hsID0gYiA/IChiLmhsIHx8ICIiKSA6ICIiOwogICAgcmVu +ZGVySGxQaWNrKCk7CiAgICAkKCIjYmYtZXJyIikuaGlkZGVuID0gdHJ1ZTsKICAgICQoIiNiZi1k +ZWwiKS5zdHlsZS5kaXNwbGF5ID0gaXNOZXdCID8gIm5vbmUiIDogIiI7CiAgICAkKCIjYnVsbC1k +bGciKS5zaG93TW9kYWwoKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAkKCIjYmYtdGl0 +bGUiKS5mb2N1cygpOyB9LCAzMCk7CiAgfTsKICBmdW5jdGlvbiByZW5kZXJQaW5Td2l0Y2goKSB7 +ICQoIiNiZi1waW4iKS5jbGFzc05hbWUgPSAic3dpdGNoIiArIChkbGdQaW4gPyAiIG9uIiA6ICIi +KTsgfQogIFAudG9nZ2xlRGxnUGluID0gZnVuY3Rpb24gKCkgeyBkbGdQaW4gPSAhZGxnUGluOyBy +ZW5kZXJQaW5Td2l0Y2goKTsgfTsKICBQLnNhdmVCdWxsZXRpbiA9IGZ1bmN0aW9uICgpIHsKICAg +IHZhciB0aXRsZSA9ICQoIiNiZi10aXRsZSIpLnZhbHVlLnRyaW0oKTsKICAgIGlmICghdGl0bGUp +IHsgdmFyIGUgPSAkKCIjYmYtZXJyIik7IGUudGV4dENvbnRlbnQgPSAiVGl0ZWwgaXN0IGVyZm9y +ZGVybGljaC4iOyBlLmhpZGRlbiA9IGZhbHNlOyByZXR1cm47IH0KICAgIHZhciBub3cgPSBuZXcg +RGF0ZSgpLnRvSVNPU3RyaW5nKCk7CiAgICBpZiAoZWRpdGluZ0J1bGwpIHsKICAgICAgZWRpdGlu +Z0J1bGwudGl0bGUgPSB0aXRsZTsgZWRpdGluZ0J1bGwuYm9keSA9ICQoIiNiZi1ib2R5IikudmFs +dWU7CiAgICAgIGVkaXRpbmdCdWxsLmRhdGUgPSAkKCIjYmYtZGF0ZSIpLnZhbHVlOyBlZGl0aW5n +QnVsbC5hdXRob3IgPSAkKCIjYmYtYXV0aG9yIikudmFsdWUudHJpbSgpOwogICAgICBlZGl0aW5n +QnVsbC5waW5uZWQgPSBkbGdQaW47IGVkaXRpbmdCdWxsLmhsID0gZGxnSGw7IGVkaXRpbmdCdWxs +LnVwZGF0ZWQgPSBub3c7CiAgICB9IGVsc2UgewogICAgICBQLmNvbnRlbnQuYnVsbGV0aW5zLnVu +c2hpZnQoeyBpZDogUC51aWQoImIiKSwgdGl0bGU6IHRpdGxlLCBib2R5OiAkKCIjYmYtYm9keSIp +LnZhbHVlLAogICAgICAgIGRhdGU6ICQoIiNiZi1kYXRlIikudmFsdWUsIGF1dGhvcjogJCgiI2Jm +LWF1dGhvciIpLnZhbHVlLnRyaW0oKSB8fCAiRGF0ZW5wZmxlZ2UiLAogICAgICAgIHBpbm5lZDog +ZGxnUGluLCBobDogZGxnSGwsIGNyZWF0ZWQ6IG5vdywgdXBkYXRlZDogbm93IH0pOwogICAgfQog +ICAgdmFyIHdhc0VkaXRpbmcgPSBlZGl0aW5nQnVsbDsKICAgICQoIiNidWxsLWRsZyIpLmNsb3Nl +KCk7IFAucGVyc2lzdCgpOyBQLnJlbmRlckZlZWQoKTsgICAvLyBwZXJzaXN0IHZlcsO2ZmZlbnRs +aWNodCBiZWkgUmVkYWt0ZXVyZW4gYXV0b21hdGlzY2gKICAgIFAudG9hc3QoKHdhc0VkaXRpbmcg +PyAiTWVsZHVuZyBha3R1YWxpc2llcnQiIDogIk1lbGR1bmcgZ2VzcGVpY2hlcnQiKSArIChQLmxp +dmUgPyAiICYgdmVyw7ZmZmVudGxpY2h0LiIgOiAiIChsb2thbGVyIEVudHd1cmYpLiIpKTsKICB9 +OwogIFAuZGVsZXRlQnVsbGV0aW4gPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIWVkaXRpbmdCdWxs +KSByZXR1cm47CiAgICB2YXIgYiA9IGVkaXRpbmdCdWxsOwogICAgUC5jb25maXJtKCJNZWxkdW5n +IGzDtnNjaGVuPyIsIGZ1bmN0aW9uICgpIHsgUC5jb250ZW50LmJ1bGxldGlucyA9IFAuY29udGVu +dC5idWxsZXRpbnMuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICE9PSBiOyB9KTsgJCgi +I2J1bGwtZGxnIikuY2xvc2UoKTsgUC5wZXJzaXN0KCk7IFAucmVuZGVyRmVlZCgpOyB9LCB7IGRh +bmdlcjogdHJ1ZSB9KTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBLb2xsYWJvcmF0aW9ucy1Ib29rcyAoUGhhc2Ug +NCkgKi8KICBQLmJ1bGxldGluVGFyZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gZWRpdGluZ0J1 +bGwgPyAoImJ1bGw6IiArIChlZGl0aW5nQnVsbC5pZCB8fCBlZGl0aW5nQnVsbC50aXRsZSkpIDog +ImJ1bGw6bmV3IjsgfTsKICBQLmJ1bGxldGluTGFiZWwgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAo +JCgiI2JmLXRpdGxlIikudmFsdWUgfHwgKGVkaXRpbmdCdWxsICYmIGVkaXRpbmdCdWxsLnRpdGxl +KSB8fCAiTmV1ZSBNZWxkdW5nIik7IH07CiAgUC5idWxsZXRpblNuYXBzaG90ID0gZnVuY3Rpb24g +KCkgeyByZXR1cm4geyB0aXRsZTogJCgiI2JmLXRpdGxlIikudmFsdWUsIGJvZHk6ICQoIiNiZi1i +b2R5IikudmFsdWUsIGRhdGU6ICQoIiNiZi1kYXRlIikudmFsdWUsIGF1dGhvcjogJCgiI2JmLWF1 +dGhvciIpLnZhbHVlLCBwaW46IGRsZ1BpbiwgaGw6IGRsZ0hsIH07IH07CiAgUC5idWxsZXRpbkFw +cGx5ID0gZnVuY3Rpb24gKHMpIHsKICAgIGlmICghcykgcmV0dXJuOwogICAgJCgiI2JmLXRpdGxl +IikudmFsdWUgPSBzLnRpdGxlIHx8ICIiOyAkKCIjYmYtYm9keSIpLnZhbHVlID0gcy5ib2R5IHx8 +ICIiOyAkKCIjYmYtZGF0ZSIpLnZhbHVlID0gcy5kYXRlIHx8ICIiOyAkKCIjYmYtYXV0aG9yIiku +dmFsdWUgPSBzLmF1dGhvciB8fCAiIjsKICAgIGRsZ1BpbiA9ICEhcy5waW47IHJlbmRlclBpblN3 +aXRjaCgpOwogICAgZGxnSGwgPSBzLmhsIHx8ICIiOyByZW5kZXJIbFBpY2soKTsKICB9OwoKICAv +KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLSBNZWxkdW5nZW4tTWFzc2VuaW1wb3J0CiAgICAgVGV4dCBlaW5mdWVnZW4gKGplIEJlaXRy +YWc6IERhdHVtc3plaWxlIFRULk1NLkpKSkosIGRhbm4gVGl0ZWwsIGRhbm4gVGV4dCkgLT4KICAg +ICB3aXJkIHp1IE1lbGR1bmdlbiwgZ2VtZXJnZWQgKERlZHVwZSBEYXR1bStUaXRlbCksIG5ldWVz +dGUgb2JlbiAocmVuZGVyRmVlZCBzb3J0aWVydCkuICovCiAgZnVuY3Rpb24gcGFyc2VOZXdzKHRl +eHQpIHsKICAgIHZhciBsaW5lcyA9IFN0cmluZyh0ZXh0IHx8ICIiKS5yZXBsYWNlKC9cclxuL2cs +ICJcbiIpLnJlcGxhY2UoL1xyL2csICJcbiIpLnNwbGl0KCJcbiIpOwogICAgdmFyIHJlID0gL15c +cyooXGR7Mn0pXC4oXGR7Mn0pXC4oXGR7NH0pXHMqJC8sIG91dCA9IFtdLCBjdXIgPSBudWxsLCBi +b2R5ID0gW10sIGF3YWl0VCA9IGZhbHNlOwogICAgZnVuY3Rpb24gZmx1c2goKSB7IGlmIChjdXIp +IHsgY3VyLmJvZHkgPSBib2R5LmpvaW4oIlxuIikucmVwbGFjZSgvXG57Myx9L2csICJcblxuIiku +dHJpbSgpOyBvdXQucHVzaChjdXIpOyB9IGN1ciA9IG51bGw7IGJvZHkgPSBbXTsgYXdhaXRUID0g +ZmFsc2U7IH0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHsKICAg +ICAgdmFyIG0gPSByZS5leGVjKGxpbmVzW2ldKTsKICAgICAgaWYgKG0pIHsgZmx1c2goKTsgY3Vy +ID0geyBkYXRlOiBtWzNdICsgIi0iICsgbVsyXSArICItIiArIG1bMV0sIHRpdGxlOiAiIiB9OyBh +d2FpdFQgPSB0cnVlOyBjb250aW51ZTsgfQogICAgICBpZiAoIWN1cikgY29udGludWU7CiAgICAg +IGlmIChhd2FpdFQpIHsgaWYgKGxpbmVzW2ldLnRyaW0oKSA9PT0gIiIpIGNvbnRpbnVlOyBjdXIu +dGl0bGUgPSBsaW5lc1tpXS50cmltKCk7IGF3YWl0VCA9IGZhbHNlOyBjb250aW51ZTsgfQogICAg +ICBib2R5LnB1c2gobGluZXNbaV0pOwogICAgfQogICAgZmx1c2goKTsKICAgIHJldHVybiBvdXQu +ZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLnRpdGxlOyB9KTsKICB9CiAgUC5vcGVuTmV3 +c0ltcG9ydCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICghKFAuY2FuRWRpdCAmJiBQLmNhbkVkaXQo +KSkpIHsgUC50b2FzdCgiTnVyIGbDvHIgUmVkYWt0ZXVyZS9BZG1pbnMuIiwgdHJ1ZSk7IHJldHVy +bjsgfQogICAgdmFyIHRhLCBpbmZvLCBwYXJzZWQgPSBbXTsKICAgIFAubW9kYWwoewogICAgICB0 +aXRsZTogIk1lbGR1bmdlbiBpbXBvcnRpZXJlbiIsIGljb246ICJkb3dubG9hZCIsIHNpemU6ICJs +ZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChob3N0KSB7CiAgICAgICAgaG9zdC5hcHBlbmRDaGls +ZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJUZXh0IGVpbmbDvGdlbiDi +gJQgamUgQmVpdHJhZzogZWluZSBEYXR1bXN6ZWlsZSAoVFQuTU0uSkpKSiksIGRhcnVudGVyIGRl +ciBUaXRlbCwgZGFydW50ZXIgZGVyIFRleHQuIEJlcmVpdHMgdm9yaGFuZGVuZSBNZWxkdW5nZW4g +KGdsZWljaGVzIERhdHVtICsgVGl0ZWwpIHdlcmRlbiDDvGJlcnNwcnVuZ2VuOyBuZXVlc3RlIGxh +bmRlbiBhdXRvbWF0aXNjaCBvYmVuLiIgfSkpOwogICAgICAgIHRhID0gZWwoInRleHRhcmVhIiwg +eyBjbGFzczogIm5ld3MtaW1wb3J0LXRhIiwgcm93czogIjE2IiwgcGxhY2Vob2xkZXI6ICIwOS4w +Ni4yMDI2XG5cbkhpbndlaXMgenVtIEJBTyBQb3J0YWxcblxuU29sbHRlIGVzIFByb2JsZW1lIG1p +dCBkZXIgRGFyc3RlbGx1bmcgZ2ViZW4gLi4uXG5cbjA3LjA2LjIwMjZcblxuTmV1ZSBBcnp0YW5m +b3JkZXJ1bmdzbGlzdGUgLi4uIiB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHRhKTsKICAg +ICAgICBpbmZvID0gZWwoImRpdiIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHN0eWxlOiAibWFy +Z2luLXRvcDo4cHgiIH0pOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoaW5mbyk7CiAgICAgIH0s +CiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDogImdo +b3N0IiB9LAogICAgICAgIHsgbGFiZWw6ICJBdXN3ZXJ0ZW4iLCBraW5kOiAiZ2hvc3QiLCBhbGln +bjogImxlZnQiLCBrZWVwT3BlbjogdHJ1ZSwgb25DbGljazogZnVuY3Rpb24gKCkgewogICAgICAg +ICAgICBwYXJzZWQgPSBwYXJzZU5ld3ModGEudmFsdWUpOwogICAgICAgICAgICBpbmZvLnRleHRD +b250ZW50ID0gcGFyc2VkLmxlbmd0aCArICIgQmVpdHJhZy9CZWl0csOkZ2UgZXJrYW5udCIgKyAo +cGFyc2VkLmxlbmd0aCA/ICI6ICIgKyBwYXJzZWQuc2xpY2UoMCwgNikubWFwKGZ1bmN0aW9uIChl +KSB7IHJldHVybiBlLmRhdGUgKyAiIMK3ICIgKyBlLnRpdGxlOyB9KS5qb2luKCIgIHwgICIpICsg +KHBhcnNlZC5sZW5ndGggPiA2ID8gIiAgfCDigKYiIDogIiIpIDogIi4iKTsKICAgICAgICAgIH0g +fSwKICAgICAgICB7IGxhYmVsOiAiSW1wb3J0aWVyZW4iLCBraW5kOiAicHJpbWFyeSIsIG9uQ2xp +Y2s6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKCFwYXJzZWQubGVuZ3RoKSBwYXJzZWQg +PSBwYXJzZU5ld3ModGEudmFsdWUpOwogICAgICAgICAgICBpZiAoIXBhcnNlZC5sZW5ndGgpIHsg +UC50b2FzdCgiS2VpbiBCZWl0cmFnIGVya2FubnQg4oCUIGJpdHRlIEZvcm1hdCBwcsO8ZmVuLiIs +IHRydWUpOyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgdmFyIHNlZW4gPSB7fTsKICAgICAg +ICAgICAgKFAuY29udGVudC5idWxsZXRpbnMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGIpIHsg +c2VlblsoKGIuZGF0ZSB8fCAiIikgKyAifCIgKyAoYi50aXRsZSB8fCAiIikpLnRvTG93ZXJDYXNl +KCldID0gdHJ1ZTsgfSk7CiAgICAgICAgICAgIHZhciBhZGRlZCA9IDAsIHNraXBwZWQgPSAwOwog +ICAgICAgICAgICBwYXJzZWQuZm9yRWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHZh +ciBrZXkgPSAoZS5kYXRlICsgInwiICsgZS50aXRsZSkudG9Mb3dlckNhc2UoKTsKICAgICAgICAg +ICAgICBpZiAoc2VlbltrZXldKSB7IHNraXBwZWQrKzsgcmV0dXJuOyB9CiAgICAgICAgICAgICAg +c2VlbltrZXldID0gdHJ1ZTsKICAgICAgICAgICAgICBQLmNvbnRlbnQuYnVsbGV0aW5zLnB1c2go +eyBpZDogUC51aWQoImIiKSwgZGF0ZTogZS5kYXRlLCBwaW5uZWQ6IGZhbHNlLCB0aXRsZTogZS50 +aXRsZSwgYm9keTogZS5ib2R5IHx8ICIiLCBhdXRob3I6ICIiLCBjcmVhdGVkOiBlLmRhdGUgKyAi +VDAwOjAwOjAwIiwgdXBkYXRlZDogZS5kYXRlICsgIlQwMDowMDowMCIgfSk7CiAgICAgICAgICAg +ICAgYWRkZWQrKzsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIFAucGVyc2lzdCgpOyBQLnJl +bmRlckZlZWQoKTsKICAgICAgICAgICAgUC50b2FzdChhZGRlZCArICIgTWVsZHVuZyhlbikgaW1w +b3J0aWVydCIgKyAoc2tpcHBlZCA/ICIsICIgKyBza2lwcGVkICsgIiDDvGJlcnNwcnVuZ2VuIiA6 +ICIiKSArIChQLmxpdmUgPyAiICYgdmVyw7ZmZmVudGxpY2h0LiIgOiAiLiIpKTsKICAgICAgICAg +IH0gfQogICAgICBdCiAgICB9KTsKICB9OwoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUeXAtUmVnaXN0cmllcnVuZyAoUGhh +c2UgMykKICAgICBNZWxkdW5nZW4gd2VyZGVuIGxpdmUgZHVyY2hzdWNodCAobmljaHQgaW0gc3Rh +dGlzY2hlbiBJbmRleC9BLVopLiAqLwogIFAucmVnaXN0ZXJUeXBlKHsKICAgIGtleTogImJ1bGxl +dGluIiwgbGFiZWw6ICJNZWxkdW5nIiwgaWNvbjogImFsZXJ0IiwKICAgIHNlYXJjaExpdmU6IGZ1 +bmN0aW9uICh0b2tzKSB7CiAgICAgIHJldHVybiBQLmNvbnRlbnQuYnVsbGV0aW5zLmZpbHRlcihm +dW5jdGlvbiAoYikgewogICAgICAgIHZhciBoYXkgPSBkZWFjY2VudChiLnRpdGxlICsgIiAiICsg +Yi5ib2R5ICsgIiAiICsgKGIuYXV0aG9yIHx8ICIiKSk7CiAgICAgICAgcmV0dXJuIHRva3MuZXZl +cnkoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIGhheS5pbmRleE9mKHQpID49IDA7IH0pOwogICAgICB9 +KTsKICAgIH0KICB9KTsKCn0pKHdpbmRvdy5QKTsK +### FILE: assets/js/features/impressum.js | 13363 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvaW1wcmVzc3VtLmpz +CiAgIEltcHJlc3N1bS1Nb2RhbCAoZsO8ciBhbGxlIFJvbGxlbikgbWl0IEFuc3ByZWNocGFydG5l +ci0vUsO8Y2tmYWxsZWJlbmUtQm94CiAgIHVuZCBTdXBwb3J0LUJ1dHRvbiwgZGVyIE91dGxvb2sg +bWl0IGVpbmVtIHZvcmF1c2dlZsO8bGx0ZW4gRnJhZ2Vua2F0YWxvZwogICDDtmZmbmV0IChtYWls +dG86IGFuIGRlbiBoaW50ZXJsZWd0ZW4gRW1wZsOkbmdlcikuIEluaGFsdGUgc2luZCBkYXRlbmdl +dHJpZWJlbjoKICAgc2V0dGluZ3MuaW1wcmVzc3VtIChIVE1MKSDCtyBzZXR0aW5ncy5zdXBwb3J0 +LntlbWFpbCxzdWJqZWN0LG1haWx9LiBMZWVyID0KICAgZGllIERlZmF1bHRzIHVudGVuLiBCZWFy +YmVpdGJhciBpbSBBZG1pbiB1bnRlciDigJ5JbXByZXNzdW0gJiBTdXBwb3J0Ii4KICAgTMOkZHQg +TkFDSCBuYXYuanMgKG51dHp0IFAuc2FuaXRpemVIdG1sIGJlaW0gUmVuZGVybiBmw7xyIExlc2Vy +KS4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAoUCkgewogICJ1c2Ugc3RyaWN0IjsKICB2 +YXIgZWwgPSBQLmVsLCBpYyA9IFAuaWM7CgogIFAuSU1QUkVTU1VNX0RFRkFVTFQgPQogICAgIjxo +ND5IZXJhdXNnZWJlciAmYW1wOyBWZXJhbnR3b3J0dW5nPC9oND4iICsKICAgICI8cD5Qb2xpemVp +cHLDpHNpZGl1bSBEb3J0bXVuZDxicj4iICsKICAgICJGw7xocnVuZ3MtIHVuZCBMYWdlZGllbnN0 +IChGTEQpIMK3IExlaXRzdGVsbGUgRG9ydG11bmQ8YnI+IiArCiAgICAiPGVtPltBbnNjaHJpZnQg +Yml0dGUgZXJnw6RuemVuXTwvZW0+PC9wPiIgKwogICAgIjxoND5ad2VjayAmYW1wOyBHZWx0dW5n +c2JlcmVpY2g8L2g0PiIgKwogICAgIjxwPuKAnlBvcnRhbCBVbmlvbuKAnCBpc3QgZGllIGludGVy +bmUgV2lzc2Vucy0gdW5kIEluZm9ybWF0aW9uc3BsYXR0Zm9ybSBkZXMgRkxEIC8gZGVyIExlaXRz +dGVsbGUgRG9ydG11bmQuICIgKwogICAgIlNpZSBiw7xuZGVsdCBNZWxkdW5nZW4sIERpZW5zdGFu +d2Vpc3VuZ2VuLCBGb3JtdWxhcmUsIENoZWNrbGlzdGVuLCBWZXJ6ZWljaG5pc3NlIHVuZCBGYWNo +dmVyZmFocmVuICIgKwogICAgImF1c3NjaGxpZcOfbGljaCBmw7xyIGRlbiBkaWVuc3RsaWNoZW4g +R2VicmF1Y2ggaW0gUG9saXplaS1OZXR6LjwvcD4iICsKICAgICI8aDQ+VGVjaG5pc2NoZSBLb256 +ZXB0aW9uICZhbXA7IEVudHdpY2tsdW5nPC9oND4iICsKICAgICI8cD5QaGlsaXBwIFJvZXNnZW4s +IFBISyDCtyBwaGlsaXBwLnJvZXNnZW5AcG9saXplaS5ucncuZGU8YnI+IiArCiAgICAiPGVtPkRp +cmVrdGtvbnRha3QgbnVyIMO8YmVyIGRpZSBUZWFtbGVpdHVuZ2VuIGRlcyBUZWFtIDUg4oCUIHNp +ZWhlIFN1cHBvcnQtSGlud2VpcyB1bnRlbi48L2VtPjwvcD4iICsKICAgICI8aDQ+QmV0cmllYiAm +YW1wOyBEYXRlbmhhbHR1bmc8L2g0PiIgKwogICAgIjxwPkRhcyBQb3J0YWwgbMOkdWZ0IGF1c3Nj +aGxpZcOfbGljaCBpbSBpbnRlcm5lbiBQb2xpemVpLU5ldHogKE5ldHpsYXVmd2VyayBiencuIGxv +a2FsZXIgUGZsZWdlLUhlbGZlciAiICsKICAgICJhdWYgMTI3LjAuMC4xKS4gSW5oYWx0ZSB3ZXJk +ZW4gYWxzIGxva2FsZSBEYXRlaWVuIGdlaGFsdGVuIOKAlCBrZWluZSBDbG91ZC1EaWVuc3RlLCBr +ZWluZSBleHRlcm5lbiAiICsKICAgICJUcmFja2VyLCBrZWluZSBUZWxlbWV0cmllLjwvcD4iICsK +ICAgICI8aDQ+VmVydHJhdWxpY2hrZWl0PC9oND4iICsKICAgICI8cD5EaWUgSW5oYWx0ZSBzaW5k +IGbDvHIgZGVuIGludGVybmVuIERpZW5zdGdlYnJhdWNoIGJlc3RpbW10OyBlbnRzcHJlY2hlbmQg +ZWluZ2VzdHVmdGUgVW50ZXJsYWdlbiAiICsKICAgICIoVlMtTmZEIHUuIGEuKSB1bnRlcmxpZWdl +biBkZW4gamV3ZWlsaWdlbiBWZXJzY2hsdXNzc2FjaGVuLVZvcmdhYmVuLiBLZWluZSBXZWl0ZXJn +YWJlIGFuIFVuYmVmdWd0ZS48L3A+IiArCiAgICAiPGg0PkxpemVuemhpbndlaXNlIGV4dGVybmVy +IEtvbXBvbmVudGVuPC9oND4iICsKICAgICI8dWw+PGxpPlRpbnlNQ0UgNyDigJQgR1BMLUxpemVu +eiwgc2VsZi1ob3N0ZWQgLyBvZmZsaW5lIChhc3NldHMvdmVuZG9yL3RpbnltY2UpPC9saT48L3Vs +PiIgKwogICAgIjxoND5IYWZ0dW5nc2F1c3NjaGx1c3M8L2g0PiIgKwogICAgIjxwPkRpZSBoaWVy +IGJlcmVpdGdlc3RlbGx0ZW4gSW5mb3JtYXRpb25lbiwgRGllbnN0YW53ZWlzdW5nZW4gdW5kIFZl +cnplaWNobmlzc2UgZGllbmVuIGRlciBpbnRlcm5lbiAiICsKICAgICJBcmJlaXRzb3JnYW5pc2F0 +aW9uLiBGw7xyIFZvbGxzdMOkbmRpZ2tlaXQgdW5kIEFrdHVhbGl0w6R0IHdpcmQga2VpbmUgR2V3 +w6RociDDvGJlcm5vbW1lbjsgdmVyYmluZGxpY2ggIiArCiAgICAic2luZCBhbGxlaW4gZGllIGpl +d2VpbHMgb2ZmaXppZWxsZW4gT3JpZ2luYWxkb2t1bWVudGUuPC9wPiI7CgogIFAuU1VQUE9SVF9N +QUlMX0RFRkFVTFQgPQogICAgIkhhbGxvIFBoaWxpcHAsXG5cbiIgKwogICAgIltoaWVyIGJpdHRl +IGt1cnogZGFzIEFubGllZ2VuIGluIDHigJMyIFPDpHR6ZW4gYmVzY2hyZWliZW5dXG5cblxuIiAr +CiAgICAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ +4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ +4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4iICsKICAgICIxKSBXQVMgSVNUIFBBU1NJRVJUIC8g +V0FTIFfDnE5TQ0hTVCBEVSBESVI/XG4iICsKICAgICLilIDilIDilIDilIDilIDilIDilIDilIDi +lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi +lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiIgKwog +ICAgIltEZXRhaWxsaWVydGUgQmVzY2hyZWlidW5nOiBGZWhsZXJiZXJpY2h0IE9ERVIgVmVyYmVz +c2VydW5ncy1cbiIgKwogICAgIiB2b3JzY2hsYWcuIEJpdHRlIGtvbmtyZXQg4oCUIFwiZ2VodCBu +aWNodFwiIGlzdCB6dSB3ZW5pZy5dXG5cblxuIiArCiAgICAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ +4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ +4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4i +ICsKICAgICIyKSBXTyBJTSBQT1JUQUxcbiIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiAr +CiAgICAiQmVyZWljaDogW05hdmlnYXRpb24gfCBNZWxkdW5ncy1GZWVkIHwgQXJ0aWtlbC9Eb2t1 +bWVudCB8XG4iICsKICAgICIgICAgICAgICAgRGllbnN0Z3J1cHBlIHwgQXJ6dC1SZWdpc3RlciB8 +IFNjaG5lbGx6dWdyaWZmZSB8XG4iICsKICAgICIgICAgICAgICAgU3VjaGUvQeKAk1ogfCBBZG1p +bi1XZXJremV1Z2VdXG4iICsKICAgICJHZW5hdWVyZSBTdGVsbGU6IFt6LiBCLiBBZG1pbiDihpIg +UGVyc29uYWxsaXN0ZSDihpIgWmVpbGUgYmVhcmJlaXRlbl1cblxuXG4iICsKICAgICLilZDilZDi +lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi +lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi +lZDilZDilZDilZBcbiIgKwogICAgIjMpIFdJRSBLQU5OIElDSCBEQVMgUkVQUk9EVVpJRVJFTj9c +biIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiArCiAgICAiU2Nocml0dCAxOiBbLi4uXVxu +IiArCiAgICAiU2Nocml0dCAyOiBbLi4uXVxuIiArCiAgICAiU2Nocml0dCAzOiBbLi4uXVxuIiAr +CiAgICAi4oaSIFdhcyBwYXNzaWVydCB0YXRzw6RjaGxpY2g6IFsuLi5dXG4iICsKICAgICLihpIg +V2FzIGjDpHR0ZSBzdGF0dGRlc3NlbiBwYXNzaWVyZW4gc29sbGVuOiBbLi4uXVxuXG5cbiIgKwog +ICAgIuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV +kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV +kOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuIiArCiAgICAiNCkgV0VSIC8gV0FTIElTVCBCRVRST0ZG +RU5cbiIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiArCiAgICAiQmV0cm9mZmVuZShyKSBF +aW50cmFnIC8gRGF0ZW5zYXR6IChmYWxscyByZWxldmFudCk6IFsuLi5dXG4iICsKICAgICJOdXIg +YmVpIG1pciDigJQgb2RlciBhdWNoIGJlaSBLb2xsZWc6aW5uZW4/IFsuLi5dXG4iICsKICAgICJS +ZXByb2R1emllcmJhciBuYWNoIE5ldWxhZGVuIChGNSkgLyBIZWxmZXItTmV1c3RhcnQ/IFsuLi5d +XG5cblxuIiArCiAgICAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ +4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ +4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4iICsKICAgICI1KSBXSUUgRFJJTkdF +TkQgSVNUIERBUz9cbiIgKwogICAgIuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU +gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuIiArCiAgICAiWyBdIEJs +b2NraWVydCBtZWluZSBBcmJlaXQga29tcGxldHRcbiIgKwogICAgIlsgXSBTdMO2cnQsIGljaCBo +YWJlIGFiZXIgZWluZW4gV29ya2Fyb3VuZFxuIiArCiAgICAiWyBdIFZlcmJlc3NlcnVuZ3N2b3Jz +Y2hsYWcg4oCUIGtlaW4gYWt1dGVyIEJlZGFyZlxuXG5cbiIgKwogICAgIuKVkOKVkOKVkOKVkOKV +kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV +kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV +kOKVkFxuIiArCiAgICAiNikgU0NSRUVOU0hPVFMgLyBBTkjDhE5HRSDigJQgQklUVEUgQkVJTEVH +RU4hXG4iICsKICAgICLilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi +lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi +lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiIgKwogICAgIk1pbmRlc3RlbnMgMSBT +Y3JlZW5zaG90IGRlciByZWxldmFudGVuIFN0ZWxsZS4gU28gZ2VodHM6XG4iICsKICAgICIgIOKA +oiBTdHJnICsgRHJ1Y2sgICDihpIgZ2FuemVyIEJpbGRzY2hpcm0gaW4gZGllIFp3aXNjaGVuYWJs +YWdlXG4iICsKICAgICIgIOKAoiBBbHQgKyBEcnVjayAgICDihpIgbnVyIGRhcyBha3RpdmUgRmVu +c3RlclxuIiArCiAgICAiICDigKIgUGFpbnQgw7ZmZm5lbiAgIOKGkiBTdHJnICsgViBlaW5mw7xn +ZW4g4oaSIGFscyBQTkcgc3BlaWNoZXJuXG4iICsKICAgICIgIOKAoiBEYXRlaShlbikgYW4gZGll +c2UgTWFpbCBhbmjDpG5nZW5cblxuXG4iICsKICAgICJWaWVsZSBHcsO8w59lXG4iICsKICAgICJb +Vm9yLSB1bmQgTmFjaG5hbWUsIERpZW5zdGdyYWRdXG4iICsKICAgICJbRGllbnN0c3RlbGxlIC8g +RHVyY2h3YWhsXVxuXG5cbiIgKwogICAgIuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV +kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV +kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuIiArCiAgICAiVEVD +SE5JU0NIRSBJTkZPIOKAlCBiaXR0ZSB1bnZlcsOkbmRlcnQgbGFzc2VuICh2b20gU3lzdGVtIGVy +Z8Okbnp0KVxuIiArCiAgICAi4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA +4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA +4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4iICsKICAgICJOVy1LZW5udW5n +OiAgICAgICB7bndfa2VubnVuZ31cbiIgKwogICAgIlJvbGxlOiAgICAgICAgICAgIHtyb2xsZX1c +biIgKwogICAgIkFrdHVlbGxlIEFuc2ljaHQ6IHthbnNpY2h0fVxuIiArCiAgICAiRGF0dW0gLyBV +aHJ6ZWl0OiAge2RhdHVtfSB7dWhyemVpdH1cbiIgKwogICAgIkF1ZmzDtnN1bmc6ICAgICAgICB7 +YXVmbG9lc3VuZ31cbiIgKwogICAgIkNhY2hlLVZlcnNpb246ICAgIHt2ZXJzaW9ufVxuIiArCiAg +ICAiQnJvd3NlcjogICAgICAgICAge2Jyb3dzZXJ9XG4iICsKICAgICLilZDilZDilZDilZDilZDi +lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi +lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi +lZBcbiI7CgogIC8vIFRlYW0tNS1LYXRhbG9nID0gZGVyc2VsYmUgRnJhZ2Vua2F0YWxvZywgbnVy +IGFuZGVyZSBBbnJlZGUgKGFsbGdlbWVpbmVyIFN1cHBvcnQtV2VnKS4KICBQLlNVUFBPUlRfVEVB +TTVfREVGQVVMVCA9IFAuU1VQUE9SVF9NQUlMX0RFRkFVTFQucmVwbGFjZSgiSGFsbG8gUGhpbGlw +cCwiLCAiSGFsbG8gU3VwcG9ydC1UZWFtIDUsIik7CgogIGZ1bmN0aW9uIFMoKSB7IHJldHVybiAo +UC5jb250ZW50ICYmIFAuY29udGVudC5zZXR0aW5ncykgfHwge307IH0KICBmdW5jdGlvbiBwYWQo +bikgeyByZXR1cm4gKG4gPCAxMCA/ICIwIiA6ICIiKSArIG47IH0KICBmdW5jdGlvbiBjYWNoZVZl +cigpIHsKICAgIHRyeSB7IHZhciBsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbGlua1tyZWw9 +InN0eWxlc2hlZXQiXScpOyB2YXIgbSA9IGwgJiYgL1s/Jl12PShbXiYiJ10rKS8uZXhlYyhsLmhy +ZWYpOyByZXR1cm4gbSA/IG1bMV0gOiAiPyI7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuICI/IjsgfQog +IH0KICBmdW5jdGlvbiBjdXJyZW50VmlldygpIHsKICAgIGlmIChQLmN1ckFydGljbGUpIHJldHVy +biAiQXJ0aWtlbCAvIERva3VtZW50IjsKICAgIHZhciBjdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0 +b3IoIi5jb250ZW50LXZpZXciKTsKICAgIGlmIChjdiAmJiBjdi5vZmZzZXRQYXJlbnQgIT09IG51 +bGwpIHJldHVybiAiRG9rdW1lbnQtQW5zaWNodCI7CiAgICByZXR1cm4gIk1lbGR1bmdzLUZlZWQg +LyDDnGJlcnNpY2h0IjsKICB9CgogIHZhciBNQUlMX1JFID0gL15bXlxzQF0rQFteXHNAXStcLlte +XHNAXSskLzsKICAvLyBGcmFnZW5rYXRhbG9nIG1pdCBMaXZlLVdlcnRlbiBmw7xsbGVuICh7cGxh +dHpoYWx0ZXJ9IC0+IEtvbnRleHQpLiB3aGljaCA9ICJ0ZWFtNSIgfCAicm9lc2dlbiIuCiAgUC5z +dXBwb3J0TWFpbEJvZHkgPSBmdW5jdGlvbiAod2hpY2gpIHsKICAgIHZhciBuID0gbmV3IERhdGUo +KSwgc3VwID0gUygpLnN1cHBvcnQgfHwge307CiAgICB2YXIgdHBsID0gKHdoaWNoID09PSAidGVh +bTUiKQogICAgICA/ICgoc3VwLnRlYW01TWFpbCAmJiBTdHJpbmcoc3VwLnRlYW01TWFpbCkudHJp +bSgpKSA/IHN1cC50ZWFtNU1haWwgOiBQLlNVUFBPUlRfVEVBTTVfREVGQVVMVCkKICAgICAgOiAo +KHN1cC5tYWlsICYmIFN0cmluZyhzdXAubWFpbCkudHJpbSgpKSA/IHN1cC5tYWlsIDogUC5TVVBQ +T1JUX01BSUxfREVGQVVMVCk7CiAgICB2YXIgY3R4ID0gewogICAgICAie253X2tlbm51bmd9Ijog +UC51c2VyIHx8ICI/IiwKICAgICAgIntyb2xsZX0iOiBQLnJvbGUgfHwgIj8iLAogICAgICAie2Fu +c2ljaHR9IjogY3VycmVudFZpZXcoKSwKICAgICAgIntkYXR1bX0iOiBwYWQobi5nZXREYXRlKCkp +ICsgIi4iICsgcGFkKG4uZ2V0TW9udGgoKSArIDEpICsgIi4iICsgbi5nZXRGdWxsWWVhcigpLAog +ICAgICAie3VocnplaXR9IjogcGFkKG4uZ2V0SG91cnMoKSkgKyAiOiIgKyBwYWQobi5nZXRNaW51 +dGVzKCkpLAogICAgICAie2F1ZmxvZXN1bmd9IjogKHdpbmRvdy5pbm5lcldpZHRoIHx8ICI/Iikg +KyAieCIgKyAod2luZG93LmlubmVySGVpZ2h0IHx8ICI/IiksCiAgICAgICJ7dmVyc2lvbn0iOiBj +YWNoZVZlcigpLAogICAgICAie2Jyb3dzZXJ9IjogKG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IudXNl +ckFnZW50KSA/IG5hdmlnYXRvci51c2VyQWdlbnQuc3Vic3RyaW5nKDAsIDEyMCkgOiAiPyIKICAg +IH07CiAgICB2YXIgb3V0ID0gdHBsOwogICAgT2JqZWN0LmtleXMoY3R4KS5mb3JFYWNoKGZ1bmN0 +aW9uIChrKSB7IG91dCA9IG91dC5zcGxpdChrKS5qb2luKGN0eFtrXSk7IH0pOwogICAgcmV0dXJu +IG91dDsKICB9OwogIFAuc3VwcG9ydE1haWx0byA9IGZ1bmN0aW9uICh3aGljaCkgewogICAgdmFy +IHN1cCA9IFMoKS5zdXBwb3J0IHx8IHt9LCB0bywgc3ViajsKICAgIGlmICh3aGljaCA9PT0gInRl +YW01IikgewogICAgICB0byA9IChzdXAudGVhbTVFbWFpbCAmJiBTdHJpbmcoc3VwLnRlYW01RW1h +aWwpLnRyaW0oKSkgfHwgIkRpckdFRkxEVGVhbTUuRG9ydG11bmRAcG9saXplaS5ucncuZGUiOyAg +IC8vICJNYWlsIFRFQU0gNSIgaGllciBhdWZnZWdhbmdlbgogICAgICBzdWJqID0gKHN1cC50ZWFt +NVN1YmplY3QgJiYgU3RyaW5nKHN1cC50ZWFtNVN1YmplY3QpLnRyaW0oKSkgfHwgIlBvcnRhbCBV +bmlvbiDigJMgU3VwcG9ydCAoVGVhbSA1KSI7CiAgICB9IGVsc2UgewogICAgICB0byA9IChzdXAu +ZW1haWwgJiYgU3RyaW5nKHN1cC5lbWFpbCkudHJpbSgpKSB8fCAicGhpbGlwcC5yb2VzZ2VuQHBv +bGl6ZWkubnJ3LmRlIjsKICAgICAgaWYgKCFNQUlMX1JFLnRlc3QodG8pKSB0byA9ICJwaGlsaXBw +LnJvZXNnZW5AcG9saXplaS5ucncuZGUiOwogICAgICBzdWJqID0gKHN1cC5zdWJqZWN0ICYmIFN0 +cmluZyhzdXAuc3ViamVjdCkudHJpbSgpKSB8fCAiUG9ydGFsIFVuaW9uIOKAkyBTdXBwb3J0IjsK +ICAgIH0KICAgIHZhciB0b0VuYyA9IE1BSUxfUkUudGVzdCh0bykgPyBlbmNvZGVVUklDb21wb25l +bnQodG8pLnJlcGxhY2UoLyU0MC9nLCAiQCIpIDogIiI7ICAgLy8gdW5nw7xsdGlnL2xlZXIgLT4g +RW1wZsOkbmdlciBpbSBPdXRsb29rIHfDpGhsZW4KICAgIHJldHVybiAibWFpbHRvOiIgKyB0b0Vu +YyArICI/c3ViamVjdD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHN1YmopICsgIiZib2R5PSIgKyBl +bmNvZGVVUklDb21wb25lbnQoUC5zdXBwb3J0TWFpbEJvZHkod2hpY2gpKTsKICB9OwoKICAvLyAi +UmVkYWt0aW9uICYgQWRtaW5pc3RyYXRpb24iIGF1dG9tYXRpc2NoIGF1cyBzZXR0aW5ncy50ZWFt +ICh2b24gcm9sZXMuanMgYmVpbSBTcGVpY2hlcm4gdmVyb2VmZmVudGxpY2h0OwogIC8vIG9obmUg +Tm90ZmFsbC1LZW5udW5nZW4pLiBMZWVyIC0+IEhpbndlaXMuIERPTSB2aWEgZWwoKSAoa2VpbiBT +YW5pdGl6ZXIgbm9ldGlnLCByZWluZXIgVGV4dCkuCiAgZnVuY3Rpb24gdGVhbUJsb2NrKCkgewog +ICAgdmFyIHQgPSBTKCkudGVhbSB8fCB7fTsKICAgIHZhciBhZG1pbnMgPSB0LmFkbWlucyB8fCBb +XSwgcmVkYWtzID0gdC5yZWRha3RldXJlIHx8IFtdOwogICAgdmFyIGJveCA9IGVsKCJkaXYiLCB7 +IGNsYXNzOiAiaW1wcmVzc3VtLXRlYW0iIH0pOwogICAgYm94LmFwcGVuZENoaWxkKGVsKCJoNCIs +IHsgdGV4dDogIlJlZGFrdGlvbiAmIEFkbWluaXN0cmF0aW9uIiB9KSk7CiAgICBpZiAoIWFkbWlu +cy5sZW5ndGggJiYgIXJlZGFrcy5sZW5ndGgpIHsKICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJw +IiwgeyBjbGFzczogIm11dGVkIHNtYWxsIiwgdGV4dDogIkRlcnplaXQgc2luZCBrZWluZSB3ZWl0 +ZXJlbiBSZWRha3RldXI6aW5uZW4vQWRtaW5zIGJlbmFubnQuIiB9KSk7CiAgICAgIHJldHVybiBi +b3g7CiAgICB9CiAgICBmdW5jdGlvbiBubSh1KSB7IHJldHVybiBbdS5ncmFkLCB1LnZvcm5hbWUs +IHUubmFjaG5hbWVdLm1hcChmdW5jdGlvbiAocykgeyByZXR1cm4gKHMgfHwgIiIpLnRyaW0oKTsg +fSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKSB8fCAodS5rZW5udW5nIHx8ICIiKTsgfQogICAg +ZnVuY3Rpb24gbHN0KGxhYmVsLCBhcnIpIHsKICAgICAgaWYgKCFhcnIubGVuZ3RoKSByZXR1cm47 +CiAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImltcHJlc3N1bS10ZWFt +LWgiLCB0ZXh0OiBsYWJlbCB9KSk7CiAgICAgIHZhciB1bCA9IGVsKCJ1bCIpOyBhcnIuZm9yRWFj +aChmdW5jdGlvbiAodSkgeyB1bC5hcHBlbmRDaGlsZChlbCgibGkiLCB7IHRleHQ6IG5tKHUpIH0p +KTsgfSk7IGJveC5hcHBlbmRDaGlsZCh1bCk7CiAgICB9CiAgICBsc3QoIkFkbWluaXN0cmF0aW9u +IiwgYWRtaW5zKTsKICAgIGxzdCgiUmVkYWt0aW9uIiwgcmVkYWtzKTsKICAgIHJldHVybiBib3g7 +CiAgfQoKICBQLm9wZW5JbXByZXNzdW0gPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaHRtbCA9IChT +KCkuaW1wcmVzc3VtICYmIFN0cmluZyhTKCkuaW1wcmVzc3VtKS50cmltKCkpID8gUygpLmltcHJl +c3N1bSA6IFAuSU1QUkVTU1VNX0RFRkFVTFQ7CiAgICB2YXIgc2FmZSA9IFAuc2FuaXRpemVIdG1s +ID8gUC5zYW5pdGl6ZUh0bWwoaHRtbCkgOiAiIjsKICAgIHZhciBzdGFmZiA9ICEhKFAuY2FuRWRp +dCAmJiBQLmNhbkVkaXQoKSk7ICAgLy8gUmVkYWt0ZXVyL0FkbWluCiAgICBQLm1vZGFsKHsKICAg +ICAgdGl0bGU6ICJJbXByZXNzdW0iLCBpY29uOiAic2hpZWxkIiwgc2l6ZTogIm1kIiwKICAgICAg +Ym9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICBob3N0LmNsYXNzTGlzdC5hZGQoImltcHJl +c3N1bS1ib2R5Iik7CiAgICAgICAgdmFyIGNvbnRlbnQgPSBlbCgiZGl2IiwgeyBjbGFzczogImlt +cHJlc3N1bS1pbmhhbHQiIH0pOwogICAgICAgIGNvbnRlbnQuaW5uZXJIVE1MID0gc2FmZTsgICAv +LyBzYW5pdGlzaWVydCAoUC5zYW5pdGl6ZUh0bWwpCiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChj +b250ZW50KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHRlYW1CbG9jaygpKTsgICAvLyBSZWRh +a3Rpb24vQWRtaW5pc3RyYXRpb24gYXV0b21hdGlzY2ggYXVzIHNldHRpbmdzLnRlYW0KCiAgICAg +ICAgLy8gQWxsZ2VtZWluZXIgU3VwcG9ydCAoVGVhbSA1KSDigJQgZsO8ciBBTExFIFJvbGxlbi4K +ICAgICAgICB2YXIgdDUgPSBlbCgiZGl2IiwgeyBjbGFzczogImltcHJlc3N1bS1zdXBwb3J0IiB9 +KTsKICAgICAgICB0NS5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImltcHJlc3N1bS1z +dXBwb3J0LXRpdGVsIiwgaHRtbDogaWMoImluYm94IikgKyAiPHNwYW4+U3VwcG9ydCAmYW1wOyBS +w7xja2ZyYWdlbjwvc3Bhbj4iIH0pKTsKICAgICAgICB0NS5hcHBlbmRDaGlsZChlbCgicCIsIHsg +Y2xhc3M6ICJpbXByZXNzdW0tc3VwcG9ydC10ZXh0IiwKICAgICAgICAgIGh0bWw6ICJGcmFnZW4s +IEZlaGxlciBvZGVyIFfDvG5zY2hlIHp1bSBQb3J0YWwgYml0dGUgYW4gZGVuIDxzdHJvbmc+U3Vw +cG9ydCBkZXMgVGVhbSA1PC9zdHJvbmc+LiIgfSkpOwogICAgICAgIHQ1LmFwcGVuZENoaWxkKGVs +KCJhIiwgeyBjbGFzczogImJ0biBwcmltYXJ5IGltcHJlc3N1bS1tYWlsLWJ0biIsIGhyZWY6IFAu +c3VwcG9ydE1haWx0bygidGVhbTUiKSwKICAgICAgICAgIGh0bWw6IGljKCJpbmJveCIpICsgIjxz +cGFuPlN1cHBvcnQgVGVhbSA1IOKAkyBFLU1haWwgKE91dGxvb2spPC9zcGFuPiIgfSkpOwogICAg +ICAgIGhvc3QuYXBwZW5kQ2hpbGQodDUpOwoKICAgICAgICAvLyBFc2thbGF0aW9uIC8gdGVjaG5p +c2NoZXIgQW5zcHJlY2hwYXJ0bmVyIOKAlCBOVVIgUmVkYWt0ZXVyL0FkbWluLgogICAgICAgIGlm +IChzdGFmZikgewogICAgICAgICAgdmFyIGJveCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiaW1wcmVz +c3VtLW5vdGZhbGwiIH0pOwogICAgICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNs +YXNzOiAiaW1wcmVzc3VtLW5vdGZhbGwtdGl0ZWwiLCBodG1sOiBpYygic2hpZWxkIikgKyAiPHNw +YW4+VGVjaG5pc2NoZXIgQW5zcHJlY2hwYXJ0bmVyIC8gUsO8Y2tmYWxsZWJlbmU8L3NwYW4+IiB9 +KSk7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZWwoInAiLCB7IGNsYXNzOiAiaW1wcmVzc3Vt +LW5vdGZhbGwtdGV4dCIsCiAgICAgICAgICAgIGh0bWw6ICI8c3Ryb25nPlBISyBSb2VzZ2VuPC9z +dHJvbmc+IChLb256ZXB0aW9uL0VudHdpY2tsdW5nLCBOVy1LZW5udW5nIDxjb2RlPk5XMDUzNjA5 +PC9jb2RlPiwgaW0gSGVsZmVyIGFscyBOb3RmYWxsLUFkbWluIGhpbnRlcmxlZ3QpICIgKwogICAg +ICAgICAgICAgICAgICAid2lyZCA8c3Ryb25nPmF1c3NjaGxpZcOfbGljaCB2b24gZGVuIFRlYW1s +ZWl0dW5nZW4gZGVzIFRlYW0gNTwvc3Ryb25nPiBkaXJla3Qga29udGFrdGllcnQuICIgKwogICAg +ICAgICAgICAgICAgICAiQWxsZSDDvGJyaWdlbiBBbmxpZWdlbiBiaXR0ZSDDvGJlciBkZW4gU3Vw +cG9ydCBkZXMgVGVhbSA1IChvYmVuKS4iIH0pKTsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChl +bCgiYSIsIHsgY2xhc3M6ICJidG4gdGludGVkIGltcHJlc3N1bS1tYWlsLWJ0biIsIGhyZWY6IFAu +c3VwcG9ydE1haWx0bygicm9lc2dlbiIpLAogICAgICAgICAgICBodG1sOiBpYygiaW5ib3giKSAr +ICI8c3Bhbj5EaXJla3QgYW4gUEhLIFJvZXNnZW4gKG51ciBUZWFtbGVpdHVuZyBUZWFtIDUpPC9z +cGFuPiIgfSkpOwogICAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChib3gpOwogICAgICAgIH0KICAg +ICAgfSwKICAgICAgYWN0aW9uczogW3sgbGFiZWw6ICJTY2hsaWXDn2VuIiwga2luZDogImdob3N0 +IiB9XQogICAgfSk7CiAgfTsKCiAgLy8gUGVyc2lzdGVudGVyIEZ1w596ZWlsZW4tTGluayBpbiBk +ZXIgbGlua2VuIFNwYWx0ZSAoZsO8ciBhbGxlIFJvbGxlbiBzaWNodGJhcikuCiAgdmFyIGxuayA9 +IFAuJCgiI2ltcHJlc3N1bS1saW5rIik7CiAgaWYgKGxuaykgbG5rLmFkZEV2ZW50TGlzdGVuZXIo +ImNsaWNrIiwgZnVuY3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBQLm9wZW5JbXByZXNz +dW0oKTsgfSk7Cgp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/features/kennwoerter.js | 3949 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMva2VubndvZXJ0ZXIu +anMKICAgRWlnZW5lIE1pdHRlbGFuc2ljaHQgIktlbm53w7ZydGVyIiAoTGlzdGUgQmV6ZWljaG51 +bmcgfCBXZXJ0KS4gSW0gUGZsZWdlLQogICBNb2R1cyBzaW5kIHN0YW5kYXJkbWFlc3NpZyBOVVIg +ZGllIFdlcnRlIGVkaXRpZXJiYXIgKEF1dG9zYXZlKTsgZGllIFN0cnVrdHVyCiAgIChCZXplaWNo +bnVuZ2VuIGFubGVnZW4vdW1iZW5lbm5lbi9sb2VzY2hlbikgbGllZ3QgaGludGVyICJTdHJ1a3R1 +ciB2ZXJ3YWx0ZW4iLgogICBEYXRlbjogd2luZG93LlBPUlRBTF9LRU5OV09FUlRFUiAtPiBQLmNv +bnRlbnQua2VubndvZXJ0ZXIgKHB1YmxpemllcnQgaW4KICAgZGF0YS1jb250ZW50LmpzKS4gQXVm +cnVmIHVlYmVyIGRpZSBsaW5rZSBOYXZpZ2F0aW9uIChaaWVsIGFwcDprZW5ud29lcnRlcikuCiAg +ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVs +ID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljOwogIHZhciBtYW5hZ2UgPSBmYWxzZTsKCiAgZnVu +Y3Rpb24gcm93cygpIHsgcmV0dXJuIChQLmNvbnRlbnQgJiYgUC5jb250ZW50Lmtlbm53b2VydGVy +KSB8fCBbXTsgfQoKICBmdW5jdGlvbiByZW5kZXIoaG9zdCkgewogICAgaG9zdC5pbm5lckhUTUwg +PSAiIjsKICAgIHZhciBoZWFkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJhcnQtaGVhZCIgfSk7CiAg +ICBoZWFkLmFwcGVuZENoaWxkKGVsKCJoMSIsIHsgdGV4dDogIktlbm53w7ZydGVyIiB9KSk7CiAg +ICBpZiAoUC5saXZlKSB7CiAgICAgIHZhciBiYXIgPSBlbCgiZGl2IiwgeyBjbGFzczogImt3LWJh +ciIgfSk7CiAgICAgIGJhci5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBn +aG9zdCIgKyAobWFuYWdlID8gIiB0aW50ZWQiIDogIiIpLCBodG1sOiBpYygiZWRpdCIpICsgIjxz +cGFuPlN0cnVrdHVyIHZlcndhbHRlbjwvc3Bhbj4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9u +ICgpIHsgbWFuYWdlID0gIW1hbmFnZTsgcmVuZGVyKGhvc3QpOyB9IH0pKTsKICAgICAgaWYgKG1h +bmFnZSkgYmFyLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYnRuIGdob3N0Iiwg +aHRtbDogaWMoInBsdXMiKSArICI8c3Bhbj5FaW50cmFnPC9zcGFuPiIsCiAgICAgICAgb25jbGlj +azogZnVuY3Rpb24gKCkgeyByb3dzKCkucHVzaCh7IGlkOiBQLnVpZCA/IFAudWlkKCJrdyIpIDog +KCJrdyIgKyBEYXRlLm5vdygpKSwgbGFiZWw6ICIiLCB2YWx1ZTogIiIgfSk7IFAucGVyc2lzdCgp +OyByZW5kZXIoaG9zdCk7IH0gfSkpOwogICAgICBoZWFkLmFwcGVuZENoaWxkKGJhcik7CiAgICAg +IGhlYWQuYXBwZW5kQ2hpbGQoZWwoInAiLCB7IGNsYXNzOiAibXV0ZWQgc21hbGwiLCB0ZXh0OiBt +YW5hZ2UKICAgICAgICA/ICJTdHJ1a3R1ci1Nb2R1czogQmV6ZWljaG51bmdlbiDDpG5kZXJuLCBF +aW50csOkZ2UgaGluenVmw7xnZW4vbMO2c2NoZW4uIgogICAgICAgIDogIldlcnRlIGRpcmVrdCBi +ZWFyYmVpdGVuIOKAlCB3aXJkIGF1dG9tYXRpc2NoIGdlc3BlaWNoZXJ0LiBCZXplaWNobnVuZ2Vu +IMO8YmVyIOKAnlN0cnVrdHVyIHZlcndhbHRlbuKAnC4iIH0pKTsKICAgIH0KICAgIGhvc3QuYXBw +ZW5kQ2hpbGQoaGVhZCk7CgogICAgdmFyIGxpc3QgPSByb3dzKCk7CiAgICB2YXIgdGJsID0gZWwo +ImRpdiIsIHsgY2xhc3M6ICJrdy10YmwiIH0pOwogICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChy +LCBpKSB7CiAgICAgIHZhciBsYmwgPSAobWFuYWdlICYmIFAubGl2ZSkKICAgICAgICA/IGVsKCJp +bnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogImt3LWxhYmVsIiwgdmFsdWU6IHIubGFiZWwg +fHwgIiIsIHBsYWNlaG9sZGVyOiAiQmV6ZWljaG51bmciLAogICAgICAgICAgICBvbmlucHV0OiBm +dW5jdGlvbiAoKSB7IHIubGFiZWwgPSB0aGlzLnZhbHVlOyBQLnNjaGVkdWxlUGVyc2lzdCgpOyB9 +IH0pCiAgICAgICAgOiBlbCgiZGl2IiwgeyBjbGFzczogImt3LWxhYmVsLXJvIiwgdGV4dDogci5s +YWJlbCB8fCAiIiB9KTsKICAgICAgdmFyIHZhbCA9IFAubGl2ZQogICAgICAgID8gZWwoImlucHV0 +IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNzOiAia3ctdmFsdWUgbW9ubyIsIHZhbHVlOiByLnZhbHVl +IHx8ICIiLCBwbGFjZWhvbGRlcjogIldlcnQgLyBLZW5ud29ydCIsIGF1dG9jb21wbGV0ZTogIm9m +ZiIsIHNwZWxsY2hlY2s6ICJmYWxzZSIsCiAgICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgp +IHsgci52YWx1ZSA9IHRoaXMudmFsdWU7IFAuc2NoZWR1bGVQZXJzaXN0KCk7IH0gfSkKICAgICAg +ICA6IGVsKCJkaXYiLCB7IGNsYXNzOiAia3ctdmFsdWUtcm8gbW9ubyIsIHRleHQ6IHIudmFsdWUg +fHwgIiIgfSk7CiAgICAgIHZhciBjZWxscyA9IFtsYmwsIHZhbF07CiAgICAgIGlmIChtYW5hZ2Ug +JiYgUC5saXZlKSBjZWxscy5wdXNoKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibWluaS1idG4gZGFu +Z2VyIiwgdGl0bGU6ICJFaW50cmFnIGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAg +ICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBQLmNvbmZpcm0oIkVpbnRyYWcg4oCeIiArIChyLmxh +YmVsIHx8ICIiKSArICLigJwgbMO2c2NoZW4/IiwgZnVuY3Rpb24gKCkgeyBsaXN0LnNwbGljZShp +LCAxKTsgUC5wZXJzaXN0KCk7IHJlbmRlcihob3N0KTsgfSwgeyBkYW5nZXI6IHRydWUgfSk7IH0g +fSkpOwogICAgICB0YmwuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJrdy1yb3ciICsg +KG1hbmFnZSAmJiBQLmxpdmUgPyAiIGt3LW1hbmFnZSIgOiAiIikgfSwgY2VsbHMpKTsKICAgIH0p +OwogICAgaG9zdC5hcHBlbmRDaGlsZCh0YmwpOwogICAgaWYgKCFsaXN0Lmxlbmd0aCkgaG9zdC5h +cHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCIsIHRleHQ6IFAubGl2ZSA/ICJOb2No +IGtlaW5lIEtlbm53w7ZydGVyIOKAlCDigJ5TdHJ1a3R1ciB2ZXJ3YWx0ZW7igJwg4oaSIOKAnkVp +bnRyYWfigJwuIiA6ICJLZWluZSBLZW5ud8O2cnRlciBoaW50ZXJsZWd0LiIgfSkpOwogIH0KCiAg +UC5vcGVuS2VubndvZXJ0ZXIgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgYyA9ICQoIi5jZW50ZXIi +KTsgaWYgKCFjKSByZXR1cm47CiAgICBtYW5hZ2UgPSBmYWxzZTsKICAgIGMuY2xhc3NMaXN0LmFk +ZCgiZG9jIiwgImFydGljbGUiKTsgICAgICAgICAgLy8gZ2xlaWNoZSBNaXR0ZWxhbnNpY2h0IHdp +ZSBBcnRpa2VsL0Rva3UKICAgICQoIiNjdi1wYXRoIikudGV4dENvbnRlbnQgPSAiS2VubnfDtnJ0 +ZXIiOwogICAgJCgiI2N2LWZyYW1lIikuc2V0QXR0cmlidXRlKCJzcmMiLCAiYWJvdXQ6Ymxhbmsi +KTsKICAgIHJlbmRlcigkKCIjY3YtYXJ0aWNsZSIpKTsKICAgIFAuY3VyQXJ0aWNsZSA9IG51bGw7 +ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWluIEFydGlrZWwgLT4ga2VpbiAiQmVhcmJl +aXRlbiItS25vcGYKICAgIGlmIChQLm1hcmtDdXJyZW50KSBQLm1hcmtDdXJyZW50KCJhcHA6a2Vu +bndvZXJ0ZXIiKTsKICAgIFAuY2xvc2VNb2JpbGUgJiYgUC5jbG9zZU1vYmlsZSgpOwogIH07Cgog +IC8vIEFwcC1Sb3V0ZSAocmVnaXN0ZXJBcHAgYXVzIGZlYXR1cmVzL2FyenRsaXN0ZS5qczsgZGll +c2UgRGF0ZWkgbGFlZHQgZGFuYWNoKS4KICBpZiAoUC5yZWdpc3RlckFwcCkgUC5yZWdpc3RlckFw +cCgia2VubndvZXJ0ZXIiLCBmdW5jdGlvbiAoKSB7IFAub3Blbktlbm53b2VydGVyKCk7IH0sIFsi +a2VubnfDtnJ0ZXIiLCAia2VubndvZXJ0ZXIiLCAia2VubndvcnQiLCAicGFzc3fDtnJ0ZXIiXSk7 +Cgp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/features/linkcheck.js | 7782 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvbGlua2NoZWNrLmpz +CiAgIExpbmstUHJ1ZWZ1bmcgKCJTZWl0ZSIgaW0gQ0QtU3RpbCwgdmlhIFAubW9kYWwpLiBTYW1t +ZWx0IGFsbGUgRGF0ZWktTGlua3MKICAgYXVzIFBPUlRBTF9OQVYgdW5kIGVya2VubnQgZmVobGVu +ZGUgWmllbGU6CiAgIC0gUGZsZWdlLU1vZHVzIChIZWxmZXIvUC5saXZlKTogcHJ1ZWZ0IGplZGVz +IGxva2FsZSBaaWVsIGxpdmUgKEhUVFApIHVuZAogICAgIGxpc3RldCBkaWUgNDA0ZXI7IG9wdGlv +bmFsIGFscyBmZWhsZW5kIG1hcmtpZXJlbiArIHZlcm9lZmZlbnRsaWNoZW4uCiAgIC0gTGVzZXIt +TW9kdXMgKGZpbGU6Ly8pOiBsaXN0ZXQgZGllIGFscyBmZWhsZW5kIG1hcmtpZXJ0ZW4gRWludHJh +ZWdlLgogICBLbGFzc2lzY2hlcyA8c2NyaXB0Piwga2VpbmUgRVMtTW9kdWxlLiBMYWVkdCBuYWNo +IGNvbW1hbmRzLmpzLCB2b3IgbWFpbi5qcy4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCihmdW5jdGlvbiAo +UCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgZWwgPSBQLmVsLCBpYyA9IFAuaWM7CgogIC8vIFNl +aHIgZ3Jvc3NlIERhdGVpIG5pZSBsYWRlbiAoQ0xBVURFLm1kKTogbnVyIEV4aXN0ZW56LCBrZWlu +IEFicnVmLgogIHZhciBIVUdFID0gImRva3VtZW50ZS9vYmVuLzAzX2Fhby9kL2RpZ2l0YWxmdW5r +X21hc3Rlcl9ocnRfYWJfMDIuMTktRGF0ZWllbi9zaGVldDAwMS5odG0iOwoKICBmdW5jdGlvbiBr +aW5kT2YoaHJlZikgewogICAgaWYgKCFocmVmKSByZXR1cm4gIm5vbmUiOwogICAgaWYgKC9ebWFp +bHRvOi9pLnRlc3QoaHJlZikpIHJldHVybiAibWFpbCI7CiAgICBpZiAoL15odHRwcz86L2kudGVz +dChocmVmKSkgcmV0dXJuICJleHRlcm4iOwogICAgaWYgKGhyZWYuaW5kZXhPZigiLy8iKSA9PT0g +MCB8fCAvXmZpbGU6L2kudGVzdChocmVmKSkgcmV0dXJuICJpbnRyYW5ldCI7CiAgICBpZiAoaHJl +Zi5pbmRleE9mKCIuLi8iKSA9PT0gMCkgcmV0dXJuICJjcm9zcyI7CiAgICByZXR1cm4gImxva2Fs +IjsgICAvLyBkb2t1bWVudGUvLi4uLCBzdHJ1a3R1ci8uLi4sIGFzc2V0cy8uLi4sIHNvbnN0IHJl +bGF0aXYKICB9CgogIC8vIEFsbGUgQmxhdHQtTGlua3MgZGVyIE5hdmlnYXRpb24gZWluc2FtbWVs +biAoaW5rbC4gU2VrdGlvbiBmdWVyIGRlbiBQZmFkKS4KICBQLmNvbGxlY3RMaW5rcyA9IGZ1bmN0 +aW9uICgpIHsKICAgIHZhciByb3dzID0gW107CiAgICBQLmVhY2hOYXZJdGVtKGZ1bmN0aW9uIChp +dCwgcGFyZW50LCBzZWMpIHsKICAgICAgaWYgKGl0LmhlYWRpbmcpIHJldHVybjsKICAgICAgdmFy +IGQgPSAoUC5yZXNvbHZlUmVmICYmIFAucmVzb2x2ZVJlZihpdCkpIHx8IGl0OwogICAgICBpZiAo +ZC5hcnRpY2xlIHx8ICFkLmhyZWYpIHJldHVybjsgICAgICAgICAgLy8gQXJ0aWtlbCBoYWJlbiBr +ZWluIERhdGVpLVppZWwKICAgICAgcm93cy5wdXNoKHsKICAgICAgICBsYWJlbDogaXQubGFiZWwg +fHwgZC5sYWJlbCB8fCAiKG9obmUgVGl0ZWwpIiwKICAgICAgICBocmVmOiBkLmhyZWYsIGtpbmQ6 +IGtpbmRPZihkLmhyZWYpLCBicm9rZW46ICEhZC5icm9rZW4sCiAgICAgICAgc2VjdGlvbjogKHNl +YyAmJiAoc2VjLmxhYmVsIHx8IHNlYy50aXRsZSkpIHx8ICIiLCBpdGVtOiBpdAogICAgICB9KTsK +ICAgIH0pOwogICAgcmV0dXJuIHJvd3M7CiAgfTsKCiAgLy8gRWluIGxva2FsZXMgWmllbCBwcnVl +ZmVuIChudXIgTGl2ZS9IZWxmZXIpLiBCb2R5IHdpcmQgbmljaHQgZ2VsYWRlbi4KICBmdW5jdGlv +biBwcm9iZShocmVmKSB7CiAgICByZXR1cm4gZmV0Y2goZW5jb2RlVVJJKGhyZWYpLCB7IG1ldGhv +ZDogIkdFVCIsIGNhY2hlOiAibm8tc3RvcmUiIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAg +ICBpZiAocmVzLmJvZHkgJiYgcmVzLmJvZHkuY2FuY2VsKSB7IHRyeSB7IHJlcy5ib2R5LmNhbmNl +bCgpOyB9IGNhdGNoIChlKSB7fSB9CiAgICAgIHJldHVybiByZXMuc3RhdHVzOwogICAgfSkuY2F0 +Y2goZnVuY3Rpb24gKCkgeyByZXR1cm4gMDsgfSk7CiAgfQoKICAvLyBCZWdyZW56dGUgUGFyYWxs +ZWxpdGFldCwgZGFtaXQgZGVyIEhlbGZlciBuaWNodCB1ZWJlcnJhbm50IHdpcmQuCiAgZnVuY3Rp +b24gcnVuUG9vbChpdGVtcywgd29ya2VyLCBjb25jLCBvblRpY2spIHsKICAgIGNvbmMgPSBjb25j +IHx8IDg7CiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKICAgICAg +dmFyIGkgPSAwLCBkb25lID0gMCwgbiA9IGl0ZW1zLmxlbmd0aDsKICAgICAgaWYgKCFuKSByZXR1 +cm4gcmVzb2x2ZSgpOwogICAgICBmdW5jdGlvbiBuZXh0KCkgewogICAgICAgIGlmIChpID49IG4p +IHJldHVybjsKICAgICAgICB2YXIgciA9IGl0ZW1zW2krK107CiAgICAgICAgd29ya2VyKHIpLnRo +ZW4oZnVuY3Rpb24gKCkgeyBkb25lKys7IGlmIChvblRpY2spIG9uVGljayhkb25lLCBuKTsgKGRv +bmUgPT09IG4pID8gcmVzb2x2ZSgpIDogbmV4dCgpOyB9KTsKICAgICAgfQogICAgICBmb3IgKHZh +ciBrID0gMDsgayA8IE1hdGgubWluKGNvbmMsIG4pOyBrKyspIG5leHQoKTsKICAgIH0pOwogIH0K +CiAgUC5vcGVuTGlua1JlcG9ydCA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciByb3dzID0gUC5jb2xs +ZWN0TGlua3MoKTsKICAgIHZhciBmbGFnZ2VkID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKHIpIHsg +cmV0dXJuIHIuYnJva2VuOyB9KTsKICAgIHZhciBsb2NhbFJvd3MgPSByb3dzLmZpbHRlcihmdW5j +dGlvbiAocikgeyByZXR1cm4gci5raW5kID09PSAibG9rYWwiICYmIHIuaHJlZiAhPT0gSFVHRTsg +fSk7CgogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiTGluay1QcnVlZnVuZyIsIGljb246ICJs +aW5rIiwgc2l6ZTogInhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICB2 +YXIgc3VtICAgPSBlbCgiZGl2IiwgeyBjbGFzczogImxjLXN1bSIgfSk7CiAgICAgICAgdmFyIGJh +ciAgID0gZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1iYXIiIH0pOwogICAgICAgIHZhciBsaXN0SCA9 +IGVsKCJkaXYiLCB7IGNsYXNzOiAibGMtbGlzdCIgfSk7CiAgICAgICAgaG9zdC5hcHBlbmRDaGls +ZChzdW0pOyBob3N0LmFwcGVuZENoaWxkKGJhcik7IGhvc3QuYXBwZW5kQ2hpbGQobGlzdEgpOwoK +ICAgICAgICB2YXIgbGFzdEZvdW5kID0gW107ICAgLy8gbGl2ZSBnZWZ1bmRlbmUgNDA0IG9obmUg +RmxhZwoKICAgICAgICBmdW5jdGlvbiBiYWRnZShyLCBzdGF0dXMpIHsKICAgICAgICAgIGlmIChz +dGF0dXMgPT09ICJ3YWl0IikgcmV0dXJuIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIHdh +aXQiLCB0ZXh0OiAiLi4uIiB9KTsKICAgICAgICAgIGlmIChyLmtpbmQgIT09ICJsb2thbCIpCiAg +ICAgICAgICAgIHJldHVybiBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1iYWRnZSBleHQiLAogICAg +ICAgICAgICAgIHRleHQ6IHIua2luZCA9PT0gImV4dGVybiIgPyAiZXh0ZXJuIiA6IHIua2luZCA9 +PT0gImludHJhbmV0IiA/ICJJbnRyYW5ldCIgOiByLmtpbmQgPT09ICJjcm9zcyIgPyAiUG9ydGFs +IiA6ICItIiB9KTsKICAgICAgICAgIGlmIChzdGF0dXMgPT09IDIwMCkgcmV0dXJuIGVsKCJzcGFu +IiwgeyBjbGFzczogImxjLWJhZGdlIG9rIiwgdGV4dDogIk9LIiB9KTsKICAgICAgICAgIGlmICh0 +eXBlb2Ygc3RhdHVzID09PSAibnVtYmVyIikgcmV0dXJuIGVsKCJzcGFuIiwgeyBjbGFzczogImxj +LWJhZGdlIGJhZCIsIHRleHQ6ICJmZWhsdCIgKyAoc3RhdHVzID8gIiAoIiArIHN0YXR1cyArICIp +IiA6ICIiKSB9KTsKICAgICAgICAgIHJldHVybiBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1iYWRn +ZSAiICsgKHIuYnJva2VuID8gImJhZCIgOiAiaWRsZSIpLCB0ZXh0OiByLmJyb2tlbiA/ICJmZWhs +dCIgOiAiLSIgfSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHJvd0VsKHIsIHN0YXR1cykg +ewogICAgICAgICAgcmV0dXJuIGVsKCJidXR0b24iLCB7IGNsYXNzOiAibGMtcm93IiwgdGl0bGU6 +IHIuaHJlZiwKICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAoUC5uYXZpZ2F0 +ZSkgUC5uYXZpZ2F0ZShyLml0ZW0pOyB9IH0sIFsKICAgICAgICAgICAgYmFkZ2Uociwgc3RhdHVz +KSwKICAgICAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtbWFpbiIgfSwgWwogICAgICAg +ICAgICAgIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWxibCIsIHRleHQ6IHIubGFiZWwgfSksCiAg +ICAgICAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtcGF0aCBtb25vIiwgdGV4dDogKHIu +c2VjdGlvbiA/IHIuc2VjdGlvbiArICIgIC0gICIgOiAiIikgKyByLmhyZWYgfSkKICAgICAgICAg +ICAgXSkKICAgICAgICAgIF0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBzdW1tYXJ5KGh0 +bWwpIHsgc3VtLmlubmVySFRNTCA9ICIiOyBzdW0uYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xh +c3M6ICJsYy1zdW0tdCIsIGh0bWw6IGh0bWwgfSkpOyB9CgogICAgICAgIGZ1bmN0aW9uIHJlbmRl +ckZsYWdnZWQoKSB7CiAgICAgICAgICBzdW1tYXJ5KCI8Yj4iICsgZmxhZ2dlZC5sZW5ndGggKyAi +PC9iPiBhbHMgZmVobGVuZCBtYXJraWVydGUgTGlua3MgJm1pZGRvdDsgPGI+IiArIGxvY2FsUm93 +cy5sZW5ndGggKyAiPC9iPiBsb2thbGUgWmllbGUiKTsKICAgICAgICAgIGxpc3RILmlubmVySFRN +TCA9ICIiOwogICAgICAgICAgaWYgKCFmbGFnZ2VkLmxlbmd0aCkgeyBsaXN0SC5hcHBlbmRDaGls +ZChlbCgiZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwgdGV4dDogIktlaW5lIGFscyBmZWhsZW5k +IG1hcmtpZXJ0ZW4gTGlua3MuIiB9KSk7IHJldHVybjsgfQogICAgICAgICAgbGlzdEguYXBwZW5k +Q2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJmZWVkLXNlY3Rpb24tbGFiZWwiLCB0ZXh0OiAiQWxz +IGZlaGxlbmQgbWFya2llcnQiIH0pKTsKICAgICAgICAgIGZsYWdnZWQuZm9yRWFjaChmdW5jdGlv +biAocikgeyBsaXN0SC5hcHBlbmRDaGlsZChyb3dFbChyLCBudWxsKSk7IH0pOwogICAgICAgIH0K +CiAgICAgICAgdmFyIGxpdmVCdG4gPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBwcmltYXJ5 +IiwgaHRtbDogaWMoInNlYXJjaCIpICsgIjxzcGFuPkFsbGUgWmllbGUgamV0enQgcHJ1ZWZlbjwv +c3Bhbj4iLAogICAgICAgICAgb25jbGljazogcnVuTGl2ZSB9KTsKICAgICAgICB2YXIgZmxhZ0J0 +biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYnRuIHRpbnRlZCIsIGh0bWw6IGljKCJhbGVydCIp +ICsgIjxzcGFuPkdlZnVuZGVuZSBtYXJraWVyZW48L3NwYW4+Iiwgc3R5bGU6ICJkaXNwbGF5Om5v +bmUiLAogICAgICAgICAgb25jbGljazogZmxhZ0ZvdW5kIH0pOwoKICAgICAgICBpZiAoUC5saXZl +KSB7IGJhci5hcHBlbmRDaGlsZChsaXZlQnRuKTsgYmFyLmFwcGVuZENoaWxkKGZsYWdCdG4pOyB9 +CiAgICAgICAgZWxzZSBiYXIuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtaGlu +dCBtdXRlZCIsCiAgICAgICAgICB0ZXh0OiAiTGl2ZS1QcnVlZnVuZyBudXIgaW0gUGZsZWdlLU1v +ZHVzIChIZWxmZXIpIG1vZWdsaWNoIC0gdW50ZW4gZGllIGFscyBmZWhsZW5kIG1hcmtpZXJ0ZW4g +RWludHJhZWdlLiIgfSkpOwoKICAgICAgICBmdW5jdGlvbiBydW5MaXZlKCkgewogICAgICAgICAg +bGl2ZUJ0bi5kaXNhYmxlZCA9IHRydWU7IGxpdmVCdG4uaW5uZXJIVE1MID0gaWMoImNsb2NrIikg +KyAiPHNwYW4+UHJ1ZWZlLi4uPC9zcGFuPiI7CiAgICAgICAgICBmbGFnQnRuLnN0eWxlLmRpc3Bs +YXkgPSAibm9uZSI7IGxpc3RILmlubmVySFRNTCA9ICIiOyBsYXN0Rm91bmQgPSBbXTsKICAgICAg +ICAgIHZhciBiYWQgPSBbXTsKICAgICAgICAgIHJ1blBvb2wobG9jYWxSb3dzLCBmdW5jdGlvbiAo +cikgewogICAgICAgICAgICByZXR1cm4gcHJvYmUoci5ocmVmKS50aGVuKGZ1bmN0aW9uIChzdCkg +eyByLl9zdGF0dXMgPSBzdDsgaWYgKHN0ICE9PSAyMDApIGJhZC5wdXNoKHIpOyB9KTsKICAgICAg +ICAgIH0sIDgsIGZ1bmN0aW9uIChkb25lLCBuKSB7IHN1bW1hcnkoIlBydWVmZS4uLiA8Yj4iICsg +ZG9uZSArICI8L2I+IC8gIiArIG4pOyB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg +bGl2ZUJ0bi5kaXNhYmxlZCA9IGZhbHNlOyBsaXZlQnRuLmlubmVySFRNTCA9IGljKCJzZWFyY2gi +KSArICI8c3Bhbj5Fcm5ldXQgcHJ1ZWZlbjwvc3Bhbj4iOwogICAgICAgICAgICBzdW1tYXJ5KCI8 +Yj4iICsgKGxvY2FsUm93cy5sZW5ndGggLSBiYWQubGVuZ3RoKSArICI8L2I+IE9LICZtaWRkb3Q7 +IDxiPiIgKyBiYWQubGVuZ3RoICsgIjwvYj4gZmVobGVuZCAodm9uICIgKyBsb2NhbFJvd3MubGVu +Z3RoICsgIiBsb2thbGVuIFppZWxlbikiKTsKICAgICAgICAgICAgbGlzdEguaW5uZXJIVE1MID0g +IiI7CiAgICAgICAgICAgIGlmICghYmFkLmxlbmd0aCkgeyBsaXN0SC5hcHBlbmRDaGlsZChlbCgi +ZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwgdGV4dDogIkFsbGUgbG9rYWxlbiBaaWVsZSBlcnJl +aWNoYmFyLiIgfSkpOyByZXR1cm47IH0KICAgICAgICAgICAgbGlzdEguYXBwZW5kQ2hpbGQoZWwo +ImRpdiIsIHsgY2xhc3M6ICJmZWVkLXNlY3Rpb24tbGFiZWwiLCB0ZXh0OiAiRmVobGVuZGUgWmll +bGUgKCIgKyBiYWQubGVuZ3RoICsgIikiIH0pKTsKICAgICAgICAgICAgYmFkLmZvckVhY2goZnVu +Y3Rpb24gKHIpIHsgbGlzdEguYXBwZW5kQ2hpbGQocm93RWwociwgci5fc3RhdHVzKSk7IH0pOwog +ICAgICAgICAgICBsYXN0Rm91bmQgPSBiYWQuZmlsdGVyKGZ1bmN0aW9uIChyKSB7IHJldHVybiAh +ci5icm9rZW47IH0pOwogICAgICAgICAgICBpZiAobGFzdEZvdW5kLmxlbmd0aCkgewogICAgICAg +ICAgICAgIGZsYWdCdG4uc3R5bGUuZGlzcGxheSA9ICIiOwogICAgICAgICAgICAgIGZsYWdCdG4u +aW5uZXJIVE1MID0gaWMoImFsZXJ0IikgKyAiPHNwYW4+IiArIGxhc3RGb3VuZC5sZW5ndGggKyAi +IG5ldWUgYWxzIGZlaGxlbmQgbWFya2llcmVuPC9zcGFuPiI7CiAgICAgICAgICAgIH0KICAgICAg +ICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZmxhZ0ZvdW5kKCkgewogICAgICAg +ICAgaWYgKCFsYXN0Rm91bmQubGVuZ3RoKSByZXR1cm47CiAgICAgICAgICBsYXN0Rm91bmQuZm9y +RWFjaChmdW5jdGlvbiAocikgeyByLml0ZW0uYnJva2VuID0gdHJ1ZTsgci5icm9rZW4gPSB0cnVl +OyB9KTsKICAgICAgICAgIGlmIChQLnBlcnNpc3ROYXYpIFAucGVyc2lzdE5hdigpOyAgICAgIC8v +IExpdmUgLT4gQXV0by1QdWJsaXNoIGRhdGEtbmF2LmpzCiAgICAgICAgICBpZiAoUC5idWlsZElu +ZGV4KSBQLmJ1aWxkSW5kZXgoKTsKICAgICAgICAgIGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVu +ZGVyU2lkZWJhcigpOwogICAgICAgICAgUC50b2FzdChsYXN0Rm91bmQubGVuZ3RoICsgIiBFaW50 +cmFlZ2UgYWxzIGZlaGxlbmQgbWFya2llcnQiICsgKFAubGl2ZSA/ICIgJiB2ZXJvZWZmZW50bGlj +aHQuIiA6ICIuIikpOwogICAgICAgICAgZmxhZ0J0bi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBs +YXN0Rm91bmQgPSBbXTsKICAgICAgICB9CgogICAgICAgIHJlbmRlckZsYWdnZWQoKTsKICAgICAg +fSwKICAgICAgYWN0aW9uczogW3sgbGFiZWw6ICJTY2hsaWVzc2VuIiwga2luZDogImdob3N0IiB9 +XQogICAgfSk7CiAgfTsKCn0pKHdpbmRvdy5QKTsK +### FILE: assets/js/features/linkcol.js | 9923 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvbGlua2NvbC5qcwog +ICBMaW5rc2FtbWx1bmdlbiAocmVjaHRlIFNwYWx0ZSkuIEVpbiBRdWlja2xpbmsgbWl0IFppZWwg +ImNvbDo8aWQ+IiBvZWZmbmV0CiAgIEtFSU4gTW9kYWwsIHNvbmRlcm4gYmxlbmRldCBkaWUgRGll +bnN0Z3J1cHBlbi1QbGFudW5nIChSb3N0ZXIpIHRlbXBvcmFlciBhdXMKICAgdW5kIHNldHp0IGRh +cyBTYW1tbHVuZ3MtTW9kdWwgYW4gZGVyZW4gUGxhdHogKCNsaW5rY29sLWhvc3QgaW4gI3BhbmVs +cykuCiAgIFZlcnNjaGFjaHRlbHVuZzogZWluIExpbmsgaW4gZGVyIFNhbW1sdW5nIGthbm4gd2ll +ZGVyIGF1ZiAiY29sOjxpZD4iIHplaWdlbgogICAoQnJvdGtydW1lbiAienVydWVjayIpLiBOYWNo +IH4yIE1pbiBvaG5lIEludGVyYWt0aW9uIGZhZWhydCBkYXMgTW9kdWwgdm9uCiAgIHNlbGJzdCBl +aW4gdW5kIGRpZSBEaWVuc3RncnVwcGUga29tbXQgenVydWVjay4gWmVudHJhbCBkYXJnZXN0ZWxs +dGUgTGlua3MKICAgKHRhcmdldD1jb250ZW50KSBmdW5rdGlvbmllcmVuIG5vcm1hbCB3ZWl0ZXIg +4oCUIGtlaW4gTGF5b3V0LUhpamFjay4KICAgRGF0ZW46IHdpbmRvdy5QT1JUQUxfTElOS0NPTFMg +LT4gUC5jb250ZW50Lmxpbmtjb2xzLiBFZGl0aWVyYmFyIGltIEJhY2tlbmQuCiAgID09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVsID0gUC5lbCwg +JCA9IFAuJCwgaWMgPSBQLmljOwogIHZhciBJRExFX01TID0gMTIwMDAwOyAgICAgICAgICAvLyAy +IE1pbnV0ZW4gb2huZSBJbnRlcmFrdGlvbiAtPiBlaW5mYWhyZW4KICB2YXIgaWRsZVRpbWVyID0g +bnVsbCwgc3RhY2sgPSBbXTsgICAvLyBzdGFjayA9IGJlc3VjaHRlIGNvbC1pZHMgKEJyb3RrcnVt +ZW4pCgogIFAuY29sQnlJZCA9IGZ1bmN0aW9uIChpZCkgewogICAgdmFyIEwgPSAoUC5jb250ZW50 +ICYmIFAuY29udGVudC5saW5rY29scykgfHwgW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IEwu +bGVuZ3RoOyBpKyspIGlmIChMW2ldLmlkID09PSBpZCkgcmV0dXJuIExbaV07CiAgICByZXR1cm4g +bnVsbDsKICB9OwogIGZ1bmN0aW9uIGNvbE9mKGwpIHsgcmV0dXJuIGwgJiYgKGwuY29sIHx8ICgv +XmNvbDovLnRlc3QobC5ocmVmIHx8ICIiKSA/IFN0cmluZyhsLmhyZWYpLnNsaWNlKDQpIDogIiIp +KTsgfQoKICBmdW5jdGlvbiByZXNldElkbGUoKSB7IGlmIChpZGxlVGltZXIpIGNsZWFyVGltZW91 +dChpZGxlVGltZXIpOyBpZGxlVGltZXIgPSBzZXRUaW1lb3V0KFAuY2xvc2VMaW5rQ29sLCBJRExF +X01TKTsgfQoKICBQLmNsb3NlTGlua0NvbCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmIChpZGxlVGlt +ZXIpIHsgY2xlYXJUaW1lb3V0KGlkbGVUaW1lcik7IGlkbGVUaW1lciA9IG51bGw7IH0KICAgIHN0 +YWNrID0gW107CiAgICB2YXIgYm94ID0gJCgiI2xpbmtjb2wtaG9zdCIpOyBpZiAoYm94KSBib3gu +cmVtb3ZlKCk7CiAgICB2YXIgcm9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BhbmVscyAu +cm9zdGVyIik7IGlmIChyb3MpIHJvcy5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgfTsKCiAgZnVuY3Rp +b24gcmVuZGVyQm9keShib2R5LCBpZCkgewogICAgYm9keS5pbm5lckhUTUwgPSAiIjsKICAgIHZh +ciBjb2wgPSBQLmNvbEJ5SWQoaWQpOwogICAgaWYgKCFjb2wpIHsgYm9keS5hcHBlbmRDaGlsZChl +bCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJTYW1tbHVuZyBuaWNodCBnZWZ1 +bmRlbi4iIH0pKTsgcmV0dXJuOyB9CiAgICAoY29sLmxpbmtzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0 +aW9uIChsKSB7CiAgICAgIHZhciBjaWQgPSBjb2xPZihsKTsKICAgICAgdmFyIGEgPSBlbCgiYnV0 +dG9uIiwgeyBjbGFzczogInFsIiArIChsLnZhcmlhbnQgPyAiICIgKyBsLnZhcmlhbnQgOiAiIiks +IHRpdGxlOiBsLmhyZWYgfHwgKGNpZCA/ICJTYW1tbHVuZzogIiArIGNpZCA6ICIiKSwKICAgICAg +ICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXNldElkbGUoKTsKICAgICAgICAg +IGlmIChjaWQpIHsgc3RhY2sucHVzaChpZCk7IHNob3coY2lkKTsgfQogICAgICAgICAgZWxzZSB7 +IFAubmF2aWdhdGUobCk7IH0gICAvLyBNaXR0ZS9uZXVlciBUYWIvTW9kYWwvbG9rYWxlIERhdGVp +IHdpZSB1ZWJlcmFsbAogICAgICAgIH0gfSk7CiAgICAgIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4i +LCB7IGNsYXNzOiAibGJsIiwgdGV4dDogbC5sYWJlbCB9KSk7CiAgICAgIGlmIChjaWQpIGEuYXBw +ZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiZXh0IiwgaHRtbDogaWMoImNoZXYiKSB9KSk7 +CiAgICAgIGVsc2UgaWYgKGwudGFyZ2V0ID09PSAiX2JsYW5rIikgYS5hcHBlbmRDaGlsZChlbCgi +c3BhbiIsIHsgY2xhc3M6ICJleHQiLCBodG1sOiBpYygiZXh0IikgfSkpOwogICAgICBib2R5LmFw +cGVuZENoaWxkKGEpOwogICAgfSk7CiAgICBpZiAoIShjb2wubGlua3MgfHwgW10pLmxlbmd0aCkg +Ym9keS5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJO +b2NoIGtlaW5lIExpbmtzIGluIGRpZXNlciBTYW1tbHVuZy4iIH0pKTsKICB9CgogIGZ1bmN0aW9u +IHNob3coaWQpIHsKICAgIHZhciBib3ggPSAkKCIjbGlua2NvbC1ob3N0Iik7IGlmICghYm94KSBy +ZXR1cm47CiAgICB2YXIgY29sID0gUC5jb2xCeUlkKGlkKSB8fCB7IHRpdGxlOiAiU2FtbWx1bmci +IH07CiAgICB2YXIgaGVhZCA9ICQoIi5saW5rY29sLWhlYWQiLCBib3gpOyBoZWFkLmlubmVySFRN +TCA9ICIiOwogICAgaWYgKHN0YWNrLmxlbmd0aCkgaGVhZC5hcHBlbmRDaGlsZChlbCgiYnV0dG9u +IiwgeyBjbGFzczogImljb24tbWluaSIsIHRpdGxlOiAiWnVyw7xjayIsIGh0bWw6IGljKCJiYWNr +IiksCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgcmVzZXRJZGxlKCk7IHNob3coc3RhY2su +cG9wKCkpOyB9IH0pKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi +aWNvIiwgaHRtbDogaWMoImdyaWQiKSB9KSk7CiAgICBoZWFkLmFwcGVuZENoaWxkKGVsKCJoMyIs +IHsgdGV4dDogY29sLnRpdGxlIHx8ICJTYW1tbHVuZyIgfSkpOwogICAgdmFyIGFjdHMgPSBlbCgi +c3BhbiIsIHsgY2xhc3M6ICJsaW5rY29sLWFjdHMiIH0pOwogICAgaWYgKFAubGl2ZSAmJiBQLm9w +ZW5MaW5rQ29sRWRpdG9yKSBhY3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAi +aWNvbi1taW5pIGVkaXQtb25seSIsIHRpdGxlOiAiTGlua3NhbW1sdW5nZW4gYmVhcmJlaXRlbiIs +CiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5vcGVuTGlua0NvbEVkaXRvcihpZCk7IH0s +IGh0bWw6IGljKCJlZGl0IikgfSkpOwogICAgYWN0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwg +eyBjbGFzczogImljb24tbWluaSIsIHRpdGxlOiAiU2NobGllw59lbiAoRGllbnN0Z3J1cHBlIHp1 +csO8Y2spIiwgaHRtbDogaWMoIngiKSwgb25jbGljazogUC5jbG9zZUxpbmtDb2wgfSkpOwogICAg +aGVhZC5hcHBlbmRDaGlsZChhY3RzKTsKICAgIHJlbmRlckJvZHkoJCgiLmxpbmtjb2wtYm9keSIs +IGJveCksIGlkKTsKICAgIGJveC5kYXRhc2V0LmNvbCA9IGlkOwogIH0KCiAgLy8gT2VmZm5ldCBl +aW5lIFNhbW1sdW5nIGFuIFN0ZWxsZSBkZXIgRGllbnN0Z3J1cHBlIChyZWNodHMpLgogIFAub3Bl +bkxpbmtDb2xsZWN0aW9uID0gZnVuY3Rpb24gKGlkKSB7CiAgICB2YXIgcGFuZWxzID0gJCgiI3Bh +bmVscyIpOyBpZiAoIXBhbmVscykgcmV0dXJuOwogICAgaWYgKCFQLmNvbEJ5SWQoaWQpKSB7IFAu +dG9hc3QoIkxpbmtzYW1tbHVuZyBuaWNodCBnZWZ1bmRlbi4iKTsgcmV0dXJuOyB9CiAgICBzdGFj +ayA9IFtdOwogICAgdmFyIHJvcyA9IHBhbmVscy5xdWVyeVNlbGVjdG9yKCIucm9zdGVyIik7CiAg +ICB2YXIgYm94ID0gJCgiI2xpbmtjb2wtaG9zdCIpOwogICAgaWYgKCFib3gpIHsKICAgICAgYm94 +ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwYW5lbCBsaW5rY29sIiwgaWQ6ICJsaW5rY29sLWhvc3Qi +IH0sIFsKICAgICAgICBlbCgiZGl2IiwgeyBjbGFzczogInBhbmVsLWhlYWQgbGlua2NvbC1oZWFk +IiB9KSwKICAgICAgICBlbCgiZGl2IiwgeyBjbGFzczogInFsLWdyaWQgbGlua2NvbC1ib2R5IiB9 +KQogICAgICBdKTsKICAgICAgaWYgKHJvcykgcGFuZWxzLmluc2VydEJlZm9yZShib3gsIHJvcyk7 +IGVsc2UgcGFuZWxzLmFwcGVuZENoaWxkKGJveCk7CiAgICAgIGJveC5hZGRFdmVudExpc3RlbmVy +KCJtb3VzZW1vdmUiLCByZXNldElkbGUpOwogICAgICBib3guYWRkRXZlbnRMaXN0ZW5lcigiY2xp +Y2siLCByZXNldElkbGUpOwogICAgICBib3guYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHJl +c2V0SWRsZSk7CiAgICB9CiAgICBpZiAocm9zKSByb3Muc3R5bGUuZGlzcGxheSA9ICJub25lIjsg +ICAvLyBEaWVuc3RncnVwcGUgKEEvQi9DKSB0ZW1wb3JhZXIgYXVzYmxlbmRlbgogICAgc2hvdyhp +ZCk7CiAgICByZXNldElkbGUoKTsKICAgIFAuY2xvc2VNb2JpbGUgJiYgUC5jbG9zZU1vYmlsZSgp +OwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tIEJhY2tlbmQtRWRpdG9yICovCiAgZnVuY3Rpb24gdWlkKCkgeyByZXR1 +cm4gUC51aWQgPyBQLnVpZCgiY29sIikgOiAoImNvbC0iICsgRGF0ZS5ub3coKS50b1N0cmluZygz +NikpOyB9CiAgZnVuY3Rpb24gbW92ZShhcnIsIGksIGQpIHsgdmFyIGogPSBpICsgZDsgaWYgKGog +PCAwIHx8IGogPj0gYXJyLmxlbmd0aCkgcmV0dXJuIGZhbHNlOyB2YXIgeCA9IGFyci5zcGxpY2Uo +aSwgMSlbMF07IGFyci5zcGxpY2UoaiwgMCwgeCk7IHJldHVybiB0cnVlOyB9CgogIFAub3Blbkxp +bmtDb2xFZGl0b3IgPSBmdW5jdGlvbiAoZm9jdXNJZCkgewogICAgaWYgKCFQLmxpdmUpIHsgUC50 +b2FzdCgiQmVhcmJlaXRlbiBudXIgaW0gUGZsZWdlLU1vZHVzLiIpOyByZXR1cm47IH0KICAgIHZh +ciBXID0gUC5jbG9uZShQLmNvbnRlbnQubGlua2NvbHMgfHwgW10pOwogICAgdmFyIGhvc3QgPSBu +dWxsOwogICAgZnVuY3Rpb24gcmVyZW5kZXIoKSB7IGlmIChob3N0KSB7IGhvc3QuaW5uZXJIVE1M +ID0gIiI7IGJ1aWxkKGhvc3QpOyB9IH0KICAgIGZ1bmN0aW9uIGNvbE9wdHMoZXhjZXB0SWQpIHsK +ICAgICAgdmFyIG8gPSBbWyIiLCAi4oCUIGtlaW5lIOKAlCJdXTsKICAgICAgVy5mb3JFYWNoKGZ1 +bmN0aW9uIChjKSB7IGlmIChjLmlkICE9PSBleGNlcHRJZCkgby5wdXNoKFsiY29sOiIgKyBjLmlk +LCAi4oaSIFNhbW1sdW5nOiAiICsgKGMudGl0bGUgfHwgYy5pZCldKTsgfSk7CiAgICAgIHJldHVy +biBvOwogICAgfQogICAgZnVuY3Rpb24gbGlua1Jvdyhjb2wsIGwsIGxpKSB7CiAgICAgIHZhciBs +YmwgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xhc3M6ICJyZS1yb2xlIiwgdmFsdWU6 +IGwubGFiZWwgfHwgIiIsIHBsYWNlaG9sZGVyOiAiQmV6ZWljaG51bmciLCBvbmlucHV0OiBmdW5j +dGlvbiAoKSB7IGwubGFiZWwgPSB0aGlzLnZhbHVlOyB9IH0pOwogICAgICB2YXIgaHJlZiA9IGVs +KCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogInJlLW5hbWUiLCB2YWx1ZTogKGNvbE9m +KGwpID8gIiIgOiAobC5ocmVmIHx8ICIiKSksIHBsYWNlaG9sZGVyOiAiWmllbCAoVVJMIC8gUGZh +ZCAvIHBvcnRhbDo8aWQ+KSIsIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgbC5ocmVmID0gdGhpcy52 +YWx1ZTsgZGVsZXRlIGwuY29sOyB9IH0pOwogICAgICB2YXIgbW9kZSA9IGVsKCJzZWxlY3QiLCB7 +IGNsYXNzOiAibGMtbW9kZSIsIG9uY2hhbmdlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHYg +PSB0aGlzLnZhbHVlOwogICAgICAgIGlmICh2LmluZGV4T2YoImNvbDoiKSA9PT0gMCkgeyBsLmhy +ZWYgPSB2OyBkZWxldGUgbC50YXJnZXQ7IGhyZWYuZGlzYWJsZWQgPSB0cnVlOyBocmVmLnZhbHVl +ID0gIiI7IH0KICAgICAgICBlbHNlIHsgbC50YXJnZXQgPSB2OyBocmVmLmRpc2FibGVkID0gZmFs +c2U7IGlmICgvXmNvbDovLnRlc3QobC5ocmVmIHx8ICIiKSkgbC5ocmVmID0gIiI7IH0KICAgICAg +fSB9KTsKICAgICAgdmFyIGN1ciA9IGNvbE9mKGwpID8gImNvbDoiICsgY29sT2YobCkgOiAobC50 +YXJnZXQgfHwgImNvbnRlbnQiKTsKICAgICAgW1siY29udGVudCIsICJNaXR0ZSJdLCBbIl9ibGFu +ayIsICJuZXVlciBUYWIiXSwgWyJtb2RhbCIsICJNb2RhbCJdXS5jb25jYXQoY29sT3B0cyhjb2wu +aWQpKS5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7CiAgICAgICAgdmFyIG9wID0gZWwoIm9wdGlvbiIs +IHsgdmFsdWU6IG9bMF0sIHRleHQ6IG9bMV0gfSk7IGlmIChvWzBdID09PSBjdXIpIG9wLnNlbGVj +dGVkID0gdHJ1ZTsgbW9kZS5hcHBlbmRDaGlsZChvcCk7CiAgICAgIH0pOwogICAgICBpZiAoY29s +T2YobCkpIGhyZWYuZGlzYWJsZWQgPSB0cnVlOwogICAgICB2YXIgZGVsID0gZWwoImJ1dHRvbiIs +IHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJMaW5rIGVudGZlcm5lbiIsIGh0bWw6IGljKCJ0 +cmFzaCIpLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IGNvbC5saW5rcy5zcGxpY2UobGksIDEpOyBy +ZXJlbmRlcigpOyB9IH0pOwogICAgICB2YXIgdXAgPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52 +LW1pbmkiLCB0aXRsZTogImhvY2giLCB0ZXh0OiAi4payIiwgb25jbGljazogZnVuY3Rpb24gKCkg +eyBpZiAobW92ZShjb2wubGlua3MsIGxpLCAtMSkpIHJlcmVuZGVyKCk7IH0gfSk7CiAgICAgIHZh +ciBkbiA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAicnVudGVyIiwg +dGV4dDogIuKWvCIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKG1vdmUoY29sLmxpbmtzLCBs +aSwgMSkpIHJlcmVuZGVyKCk7IH0gfSk7CiAgICAgIHJldHVybiBlbCgiZGl2IiwgeyBjbGFzczog +InJlLXJvdyBsYy1yb3ciIH0sIFtsYmwsIGhyZWYsIG1vZGUsIGVsKCJzcGFuIiwgeyBjbGFzczog +InJlLWFjdHMiIH0sIFt1cCwgZG4sIGRlbF0pXSk7CiAgICB9CiAgICBmdW5jdGlvbiBjb2xFbChj +b2wsIGNpKSB7CiAgICAgIHZhciB0ID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNz +OiAicmUtc2VjLXRpdGxlIiwgdmFsdWU6IGNvbC50aXRsZSB8fCAiIiwgcGxhY2Vob2xkZXI6ICJU +aXRlbCBkZXIgU2FtbWx1bmciLCBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IGNvbC50aXRsZSA9IHRo +aXMudmFsdWU7IH0gfSk7CiAgICAgIHZhciBhY3RzID0gZWwoInNwYW4iLCB7IGNsYXNzOiAicmUt +YWN0cyIgfSk7CiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJu +di1taW5pIiwgdGl0bGU6ICJob2NoIiwgdGV4dDogIuKWsiIsIG9uY2xpY2s6IGZ1bmN0aW9uICgp +IHsgaWYgKG1vdmUoVywgY2ksIC0xKSkgcmVyZW5kZXIoKTsgfSB9KSk7CiAgICAgIGFjdHMuYXBw +ZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJydW50ZXIi +LCB0ZXh0OiAi4pa8Iiwgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShXLCBjaSwgMSkp +IHJlcmVuZGVyKCk7IH0gfSkpOwogICAgICBhY3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7 +IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAiU2FtbWx1bmcgbMO2c2NoZW4iLCBodG1sOiBpYygi +dHJhc2giKSwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IFAuY29uZmlybSgiU2FtbWx1 +bmcg4oCeIiArIChjb2wudGl0bGUgfHwgIiIpICsgIuKAnCBsw7ZzY2hlbj8iLCBmdW5jdGlvbiAo +KSB7IFcuc3BsaWNlKGNpLCAxKTsgcmVyZW5kZXIoKTsgfSwgeyBkYW5nZXI6IHRydWUgfSk7IH0g +fSkpOwogICAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtc2VjLWhlYWQiIH0s +IFtlbCgic3BhbiIsIHsgY2xhc3M6ICJtb25vIG11dGVkIiwgdGV4dDogY29sLmlkIH0pLCB0LCBh +Y3RzXSk7CiAgICAgIHZhciByb3dzID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyZS1yb3dzIiB9KTsK +ICAgICAgKGNvbC5saW5rcyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAobCwgbGkpIHsgcm93cy5h +cHBlbmRDaGlsZChsaW5rUm93KGNvbCwgbCwgbGkpKTsgfSk7CiAgICAgIHZhciBhZGQgPSBlbCgi +YnV0dG9uIiwgeyBjbGFzczogImJ0biBnaG9zdCByZS1hZGQiLCBodG1sOiBpYygicGx1cyIpICsg +IiBMaW5rIiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IChjb2wubGlua3MgPSBjb2wu +bGlua3MgfHwgW10pLnB1c2goeyBsYWJlbDogIiIsIGhyZWY6ICIiLCB0YXJnZXQ6ICJjb250ZW50 +IiB9KTsgcmVyZW5kZXIoKTsgfSB9KTsKICAgICAgcmV0dXJuIGVsKCJkaXYiLCB7IGNsYXNzOiAi +cmUtc2VjIGxjLXNlYyIgfSwgW2hlYWQsIHJvd3MsIGFkZF0pOwogICAgfQogICAgZnVuY3Rpb24g +YnVpbGQoYikgewogICAgICBiLmNsYXNzTGlzdC5hZGQoInJlLWJvZHkiKTsKICAgICAgYi5hcHBl +bmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJTYW1tbHVuZ2Vu +IGbDvHIgZGllIHJlY2h0ZSBTcGFsdGUuIEVpbiBRdWlja2xpbmsgw7ZmZm5ldCBlaW5lIFNhbW1s +dW5nIMO8YmVyIFppZWwg4oCeY29sOjxpZD7igJwgKGluIGRlbiBTY2huZWxsenVncmlmZmVuIG9k +ZXIgaGllciBhbHMg4oCe4oaSIFNhbW1sdW5n4oCcKS4gU2FtbWx1bmdlbiBrw7ZubmVuIHZlcnNj +aGFjaHRlbHQgc2Vpbi4iIH0pKTsKICAgICAgVy5mb3JFYWNoKGZ1bmN0aW9uIChjLCBjaSkgeyBi +LmFwcGVuZENoaWxkKGNvbEVsKGMsIGNpKSk7IH0pOwogICAgfQogICAgZnVuY3Rpb24gc2F2ZSgp +IHsKICAgICAgVy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IGlmICghYy5pZCkgYy5pZCA9IHVpZCgp +OyBjLmxpbmtzID0gKGMubGlua3MgfHwgW10pLmZpbHRlcihmdW5jdGlvbiAobCkgeyByZXR1cm4g +KGwubGFiZWwgfHwgIiIpLnRyaW0oKSB8fCAobC5ocmVmIHx8ICIiKS50cmltKCkgfHwgY29sT2Yo +bCk7IH0pOyB9KTsKICAgICAgUC5jb250ZW50Lmxpbmtjb2xzID0gVzsKICAgICAgUC5wZXJzaXN0 +KCk7CiAgICAgIGlmIChQLnJlbmRlclBhbmVscykgUC5yZW5kZXJQYW5lbHMoKTsKICAgICAgdmFy +IG9wZW4gPSAkKCIjbGlua2NvbC1ob3N0Iik7IGlmIChvcGVuICYmIG9wZW4uZGF0YXNldC5jb2wg +JiYgUC5jb2xCeUlkKG9wZW4uZGF0YXNldC5jb2wpKSB7IHN0YWNrID0gW107IHNob3cob3Blbi5k +YXRhc2V0LmNvbCk7IH0KICAgICAgUC50b2FzdCgiTGlua3NhbW1sdW5nZW4gZ2VzcGVpY2hlcnQi +ICsgKFAubGl2ZSA/ICIgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICIuIikpOwogICAgfQogICAgUC5t +b2RhbCh7CiAgICAgIHRpdGxlOiAiTGlua3NhbW1sdW5nZW4iLCBpY29uOiAiZ3JpZCIsIHNpemU6 +ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7IGhvc3QgPSBiOyBidWlsZChiKTsgfSwK +ICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJTYW1tbHVuZyIsIGtpbmQ6ICJnaG9z +dCIsIGljb246ICJwbHVzIiwgYWxpZ246ICJsZWZ0Iiwga2VlcE9wZW46IHRydWUsCiAgICAgICAg +ICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IFcucHVzaCh7IGlkOiB1aWQoKSwgdGl0bGU6ICIiLCBs +aW5rczogW10gfSk7IHJlcmVuZGVyKCk7IH0gfSwKICAgICAgICB7IGxhYmVsOiAiQWJicmVjaGVu +Iiwga2luZDogImdob3N0IiB9LAogICAgICAgIHsgbGFiZWw6ICJTcGVpY2hlcm4iLCBraW5kOiAi +cHJpbWFyeSIsIG9uQ2xpY2s6IHNhdmUgfQogICAgICBdCiAgICB9KTsKICB9OwoKfSkod2luZG93 +LlApOwo= +### FILE: assets/js/features/migrate-ui.js | 20849 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvbWlncmF0ZS11aS5q +cwogICBBZG1pbi1NaWdyYXRpb25zLVBhbmVsOiBsaXN0ZXQgZGllIHZvbSBLb252ZXJ0ZXIgKGhl +bGZlci9taWdyYXRlX2RvY3MucHkpCiAgIGVyemV1Z3RlbiBBbHQtRG9rdS1BcnRpa2VsIChHRVQg +L2FwaS9taWdyYXRpb24pIHVuZCB1ZWJlcm5pbW10IHNpZQogICBJTi1QTEFDRSBpbiBkZW4gTmF2 +LUJhdW0g4oCUIGRlciBiZXN0ZWhlbmRlIGhyZWYtS25vdGVuLCBkZXIgYXVmIGRpZQogICBRdWVs +bC0uaHRtIHplaWd0LCB3aXJkIGFtIHNlbGJlbiBQbGF0eiB6dW0gZWRpdGllcmJhcmVuIEFydGlr +ZWwuCgogICBBYmxhdWYgamUgRG9rdW1lbnQ6IFZvcnNjaGF1IGFuc2VoZW4gLT4gImltIEVkaXRv +ciBvZWZmbmVuIiAtPiBkZXIgbm9ybWFsZQogICBBcnRpa2VsLUVkaXRvciAoVGlueU1DRSArIFAu +c2FuaXRpemVIdG1sKSAtPiB2ZXJvZWZmZW50bGljaGVuICgvYXBpL3B1Ymxpc2gpLgoKICAgTWVo +cmZhY2gtVmVyd2Vpc2U6IHplaWd0IGVpbmUgUXVlbGxkYXRlaSB2b24gbWVocmVyZW4gTmF2LVN0 +ZWxsZW4sIHdpcmQgZGllCiAgIGVyc3RlIHp1bSBBcnRpa2VsIHVuZCBkaWUgd2VpdGVyZW4gd2Vy +ZGVuIGF1dG9tYXRpc2NoIHp1IEFsaWFzLVZlcndlaXNlbgogICAoe3JlZjo8aWQ+fSwgUC5yZXNv +bHZlUmVmKSBhdWYgZGVuc2VsYmVuIEFydGlrZWwg4oCUIGFsbGUgTWVudWVwdW5rdGUgYmxlaWJl +bgogICBrb25zaXN0ZW50LiBNYW51ZWxsZXIgWmllbC1QaWNrZXIgKFAub3Blbk5hdlBpY2tlcikg +ZnVlciBNYXRjaGVyLUZlaGxzY2hsYWVnZQogICBvZGVyIGJld3Vzc3RlIFVtaGFlbmd1bmcuCgog +ICBTYW5pdGl6ZXItVmVyaGFlbHRuaXMgKEFsbG93bGlzdC1EcmlmdCk6IG1pZ3JhdGVfZG9jcy5w +eSByZWluaWd0IFZPUgogICAoZWlnZW5lIFRBR19NQVApOyBNQVNTR0VCTElDSCBpc3QgZGVyIEJy +b3dzZXItU2FuaXRpemVyIFAuc2FuaXRpemVIdG1sCiAgIChuYXYuanMsIEFMTE9XRUQpLCBkZXIg +YmVpbSBMYWRlbiBpbiBkZW4gRWRpdG9yLCBiZWltIFNwZWljaGVybiBVTkQgYmVpbQogICBSZW5k +ZXJuIGVybmV1dCBncmVpZnQuIERyaWZ0ZW4gZGllIExpc3RlbiwgZ2V3aW5udCBkZXIgQnJvd3Nl +ciAoa2FwcHQgenUKICAgdmllbCBEdXJjaGdlbGFzc2VuZXMpIOKAlCBrZWluIFNpY2hlcmhlaXRz +cmlzaWtvLCBob2VjaHN0ZW5zIGZlaGxlbmRlIFRhZ3MuCgogICBBZG1pbi0vTGl2ZS1vbmx5IChy +dWZ0IC9hcGkvKikuIExlc2VyIChmaWxlOi8vKSBzZWhlbiBkYXMgUGFuZWwgbmllLgogICBLbGFz +c2lzY2hlcyA8c2NyaXB0Piwga2VpbmUgRVMtTW9kdWxlLiBMYWVkdCBuYWNoIGFydGljbGUuanMv +Y29tbWFuZHMuanMsCiAgIHZvciBtYWluLmpzLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9u +IChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBlbCA9IFAuZWwsIGljID0gUC5pYzsKCiAgLy8g +LS0tIFBmYWQtTm9ybWFsaXNpZXJ1bmc6IE1pZ3JhdGlvbi1zb3VyY2UgPC0+IE5hdi1ocmVmIHZl +cmdsZWljaGJhciBtYWNoZW4uCiAgZnVuY3Rpb24gbm9ybVBhdGgocCkgewogICAgcCA9IFN0cmlu +ZyhwIHx8ICIiKTsKICAgIHRyeSB7IHAgPSBkZWNvZGVVUklDb21wb25lbnQocCk7IH0gY2F0Y2gg +KGUpIHt9CiAgICBwID0gcC5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07ICAgICAvLyBGcmFn +bWVudC9RdWVyeSB3ZWcKICAgIHAgPSBwLnJlcGxhY2UoL1xcL2csICIvIik7ICAgICAgICAgICAg +IC8vIEJhY2tzbGFzaCAtPiBTbGFzaAogICAgcCA9IHAucmVwbGFjZSgvXlwuXC8vLCAiIik7ICAg +ICAgICAgICAvLyBmdWVocmVuZGVzIC4vCiAgICBwID0gcC5yZXBsYWNlKC9cL3syLH0vZywgIi8i +KTsgICAgICAgIC8vIGRvcHBlbHRlIFNsYXNoZXMKICAgIHJldHVybiBwLnRvTG93ZXJDYXNlKCk7 +ICAgICAgICAgICAgICAgIC8vIFNoYXJlIGlzdCBjYXNlLWluc2Vuc2l0aXZlCiAgfQogIGZ1bmN0 +aW9uIG5vRXh0KHApIHsgcmV0dXJuIHAucmVwbGFjZSgvXC5odG1sPyQvLCAiIik7IH0KCiAgLy8g +QUxMRSBocmVmLUtub3RlbiBqZSBub3JtYWxpc2llcnRlbSBQZmFkIChMaXN0ZSkg4oCUIGtlaW5l +IEFsaWFzc2UsIGtlaW5lIEFydGlrZWwuCiAgZnVuY3Rpb24gaHJlZk1hcCgpIHsKICAgIHZhciBl +eGFjdCA9IHt9LCBieUJhc2UgPSB7fSwgbWlncmF0ZWQgPSB7fTsKICAgIFAuZWFjaE5hdkl0ZW0o +ZnVuY3Rpb24gKGl0KSB7CiAgICAgIGlmIChpdC5oZWFkaW5nIHx8IGl0LnJlZikgcmV0dXJuOwog +ICAgICBpZiAoaXQuX21pZ1NvdXJjZSkgbWlncmF0ZWRbbm9ybVBhdGgoaXQuX21pZ1NvdXJjZSld +ID0gaXQ7ICAgLy8gbWlncmllcnRlciBLbm90ZW4gKEFydGlrZWwgT0RFUiBPcmRuZXIpCiAgICAg +IGlmIChpdC5hcnRpY2xlIHx8IGl0LmZvbGRlcikgcmV0dXJuOyAgICAgICAgICAvLyBiZXJlaXRz +IG1pZ3JpZXJ0IC0+IG5pY2h0IG1laHIgYWxzIG9mZmVuZXMgaHJlZi1aaWVsCiAgICAgIGlmICgh +aXQuaHJlZikgcmV0dXJuOwogICAgICB2YXIgbiA9IG5vcm1QYXRoKGl0LmhyZWYpOwogICAgICAo +ZXhhY3Rbbl0gfHwgKGV4YWN0W25dID0gW10pKS5wdXNoKGl0KTsKICAgICAgdmFyIGIgPSBub0V4 +dChuKTsKICAgICAgKGJ5QmFzZVtiXSB8fCAoYnlCYXNlW2JdID0gW10pKS5wdXNoKGl0KTsgICAv +LyBGYWxsYmFjayAuaHRtIDwtPiAuaHRtbAogICAgfSk7CiAgICByZXR1cm4geyBleGFjdDogZXhh +Y3QsIGJ5QmFzZTogYnlCYXNlLCBtaWdyYXRlZDogbWlncmF0ZWQgfTsKICB9CiAgZnVuY3Rpb24g +bWF0Y2hOYXZzKG1hcHMsIHNvdXJjZSkgewogICAgdmFyIG4gPSBub3JtUGF0aChzb3VyY2UpOwog +ICAgaWYgKG1hcHMuZXhhY3Rbbl0pIHJldHVybiBtYXBzLmV4YWN0W25dLnNsaWNlKCk7CiAgICBp +ZiAobWFwcy5ieUJhc2Vbbm9FeHQobildKSByZXR1cm4gbWFwcy5ieUJhc2Vbbm9FeHQobildLnNs +aWNlKCk7CiAgICBpZiAobWFwcy5taWdyYXRlZFtuXSkgcmV0dXJuIFttYXBzLm1pZ3JhdGVkW25d +XTsgICAvLyBzY2hvbiBtaWdyaWVydCAtPiBTdGF0dXMgIm1pZ3JpZXJ0IgogICAgcmV0dXJuIFtd +OwogIH0KICBmdW5jdGlvbiBzdGF0dXNPZihpdGVtKSB7CiAgICB2YXIgcHJpbWFyeSA9IGl0ZW0u +X25hdnNbMF07CiAgICBpZiAoIXByaW1hcnkpIHJldHVybiAibm9UYXJnZXQiOwogICAgaWYgKHBy +aW1hcnkuYXJ0aWNsZSAmJiAhcHJpbWFyeS5ocmVmKSByZXR1cm4gImRvbmUiOyAgIC8vIGJlcmVp +dHMgdWViZXJub21tZW4gKEFydGlrZWwpCiAgICBpZiAocHJpbWFyeS5mb2xkZXIpIHJldHVybiAi +ZG9uZSI7ICAgICAgICAgICAgICAgICAgICAgLy8gYmVyZWl0cyB1ZWJlcm5vbW1lbiAoT3JkbmVy +LUtub3RlbikKICAgIHJldHVybiAib3BlbiI7CiAgfQogIC8vIFJlaW5lIGlmcmFtZS9SZWRpcmVj +dC0vTGVlci1Eb2t1bWVudGUgLT4ga2VpbiBQcm9zYS1BcnRpa2VsLgogIGZ1bmN0aW9uIGlzVGhp +bihpdGVtKSB7CiAgICByZXR1cm4gaXRlbS5raW5kID09PSAidGhpbiIgfHwgKGl0ZW0ud2Fybmlu +Z3MgfHwgW10pLnNvbWUoZnVuY3Rpb24gKHcpIHsgcmV0dXJuIC93ZW5pZyBUZXh0L2kudGVzdCh3 +KTsgfSk7CiAgfQogIGZ1bmN0aW9uIGlzRm9sZGVyKGl0ZW0pIHsgcmV0dXJuIGl0ZW0ua2luZCA9 +PT0gImZvbGRlciIgJiYgISFpdGVtLmZvbGRlcjsgfQogIC8vIEZ1ZXIgZGllIFN0YXBlbC1VZWJl +cm5haG1lOiBOVVIgZWNodGUgUHJvc2EtQXJ0aWtlbCDigJQgb2ZmZW5lIFRyZWZmZXIgbWl0IFpp +ZWwsIE9ITkUgV2FybnVuZywKICAvLyBuaWNodCBkdWVubi9PcmRuZXIvUmVkaXJlY3QvTGlua2xp +c3RlIChkaWUgaGFiZW4gZWlnZW5lIFVlYmVybmFobWUtUGZhZGUpLgogIGZ1bmN0aW9uIGVsaWdp +YmxlKGl0KSB7CiAgICByZXR1cm4gaXQuX3N0YXR1cyA9PT0gIm9wZW4iICYmIGl0Ll9uYXYgJiYg +KGl0LmtpbmQgPT09ICJhcnRpY2xlIiB8fCAhaXQua2luZCkgJiYKICAgICAgICAgICAhaXNUaGlu +KGl0KSAmJiAhKGl0Lndhcm5pbmdzICYmIGl0Lndhcm5pbmdzLmxlbmd0aCk7CiAgfQogIC8vIFdl +aXRlcmUgTmF2LVN0ZWxsZW4gZGVyc2VsYmVuIFF1ZWxsZSB6dSB7cmVmfS1BbGlhc3NlbiBhdWYg +ZGVuIG1pZ3JpZXJ0ZW4gS25vdGVuIG1hY2hlbi4KICBmdW5jdGlvbiBhbGlhc1NpYmxpbmdzKGl0 +ZW0sIG5vZGUpIHsKICAgIGlmICghaXRlbSB8fCAhaXRlbS5fbmF2cyB8fCBpdGVtLl9uYXZzLmxl +bmd0aCA8PSAxKSByZXR1cm4gMDsKICAgIGlmIChQLm5hdkVuc3VyZUlkcykgUC5uYXZFbnN1cmVJ +ZHMoKTsKICAgIHZhciBleCA9IDA7CiAgICBpdGVtLl9uYXZzLnNsaWNlKDEpLmZvckVhY2goZnVu +Y3Rpb24gKG4pIHsKICAgICAgaWYgKCFuIHx8IG4gPT09IG5vZGUpIHJldHVybjsKICAgICAgZGVs +ZXRlIG4uaHJlZjsgZGVsZXRlIG4udGFyZ2V0OyBkZWxldGUgbi5jaGlsZHJlbjsKICAgICAgbi5y +ZWYgPSBub2RlLl9pZDsgZXgrKzsKICAgIH0pOwogICAgcmV0dXJuIGV4OwogIH0KCiAgLy8gUGFu +ZWwtWnVzdGFuZCAoZWluZSBvZmZlbmUgSW5zdGFueik6IGhvc3QgKyBnZWxhZGVuZSBJdGVtcyAr +IGFrdGl2ZXMgSXRlbS4KICB2YXIgc3RhdGUgPSBudWxsOwoKICBQLm9wZW5NaWdyYXRpb25QYW5l +bCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICghUC5saXZlKSB7CiAgICAgIFAubW9kYWwoeyB0aXRs +ZTogIkFsdC1Eb2t1LU1pZ3JhdGlvbiIsIGljb246ICJhcnRpY2xlIiwgc2l6ZTogIm1kIiwKICAg +ICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkgeyBob3N0LmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7 +IGNsYXNzOiAibGMtaGludCBtdXRlZCIsCiAgICAgICAgICB0ZXh0OiAiRGllIE1pZ3JhdGlvbiBp +c3QgbnVyIGltIFBmbGVnZS1Nb2R1cyAoSGVsZmVyKSB2ZXJmw7xnYmFyLiIgfSkpOyB9LAogICAg +ICAgIGFjdGlvbnM6IFt7IGxhYmVsOiAiU2NobGllc3NlbiIsIGtpbmQ6ICJnaG9zdCIgfV0gfSk7 +CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChQLmxvYWRFZGl0b3IpIFAubG9hZEVkaXRvcigp +OyAgIC8vIFRpbnlNQ0Ugdm9ybGFkZW4gLT4gRWRpdG9yIGlzdCBzb2ZvcnQgYmVyZWl0CiAgICAv +LyBOYWNoIGVyZm9sZ3JlaWNoZXIgSW4tUGxhY2UtTWlncmF0aW9uOiBNZWhyZmFjaC1WZXJ3ZWlz +ZSBhbHMgQWxpYXMgdmVya251ZXBmZW4gKyBMaXN0ZSBhdWZmcmlzY2hlbi4KICAgIGZ1bmN0aW9u +IG9uRG9uZShub2RlKSB7CiAgICAgIGlmICghc3RhdGUpIHJldHVybjsKICAgICAgdmFyIGl0ID0g +c3RhdGUucGVuZGluZ0l0ZW07CiAgICAgIGlmIChpdCAmJiBub2RlKSB7CiAgICAgICAgLy8gX21p +Z1NvdXJjZSBzZXR6dCBkZXIgRWRpdG9yLVBmYWQgemVudHJhbCAoYXJ0aWNsZS5qcywgYXVzIGFy +dC5zcmMpIC0+IGhpZXIgbmljaHQgZG9wcGVsbi4KICAgICAgICB2YXIgZXh0cmEgPSAoaXQuX25h +dnMgJiYgaXQuX25hdnNbMF0gPT09IG5vZGUpID8gYWxpYXNTaWJsaW5ncyhpdCwgbm9kZSkgOiAw +OwogICAgICAgIFAucGVyc2lzdE5hdigpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IC8vIF9taWdTb3VyY2UgKyBnZ2YuIEFsaWFzc2UgbWl0LXZlcm9lZmZlbnRsaWNoZW4gKERlYm91 +bmNlIC0+IDEgUHVibGlzaCkKICAgICAgICBpZiAoUC5idWlsZEluZGV4KSBQLmJ1aWxkSW5kZXgo +KTsKICAgICAgICBpZiAoUC5yZW5kZXJTaWRlYmFyKSBQLnJlbmRlclNpZGViYXIoKTsKICAgICAg +ICBpZiAoZXh0cmEpIFAudG9hc3QoIkhhdXB0a25vdGVuIG1pZ3JpZXJ0IMK3ICIgKyBleHRyYSAr +ICIgd2VpdGVyZSBhbHMgVmVyd2VpcyB2ZXJrbsO8cGZ0LiIpOwogICAgICB9CiAgICAgIHN0YXRl +LnBlbmRpbmdJdGVtID0gbnVsbDsKICAgICAgcmVjb21wdXRlKCk7IHBhaW50KCk7CiAgICB9CiAg +ICB2YXIgYXBpID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiQWx0LURva3UtTWlncmF0aW9uIiwg +aWNvbjogImFydGljbGUiLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkg +eyBzdGF0ZSA9IHsgaG9zdDogaG9zdCwgaXRlbXM6IG51bGwsIHBlbmRpbmdJdGVtOiBudWxsLCBz +ZWw6IHt9LCBmaWx0ZXI6IHsgc3RhdHVzOiAiIiwgdHlwZTogIiIsIHE6ICIiIH0gfTsgbG9hZCgp +OyB9LAogICAgICBhY3Rpb25zOiBbeyBsYWJlbDogIlNjaGxpZXNzZW4iLCBraW5kOiAiZ2hvc3Qi +IH1dLAogICAgICBvbkNsb3NlOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9mZikgUC5vZmYoIm1pZ3Jh +dGlvbjpkb25lIiwgb25Eb25lKTsgc3RhdGUgPSBudWxsOyB9CiAgICB9KTsKICAgIGlmIChQLm9u +KSBQLm9uKCJtaWdyYXRpb246ZG9uZSIsIG9uRG9uZSk7CiAgfTsKCiAgZnVuY3Rpb24gbG9hZCgp +IHsKICAgIHZhciBob3N0ID0gc3RhdGUuaG9zdDsgaG9zdC5pbm5lckhUTUwgPSAiIjsKICAgIGhv +c3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1zdW0iIH0sIFtlbCgiZGl2Iiwg +eyBjbGFzczogImxjLXN1bS10IiwgaHRtbDogIkxhZGUga29udmVydGllcnRlIERva3VtZW50ZSDi +gKYiIH0pXSkpOwogICAgZmV0Y2goIi9hcGkvbWlncmF0aW9uIiwgeyBjYWNoZTogIm5vLXN0b3Jl +IiB9KS50aGVuKGZ1bmN0aW9uIChyKSB7IHJldHVybiByLmpzb24oKTsgfSkudGhlbihmdW5jdGlv +biAocmVzKSB7CiAgICAgIGlmICghc3RhdGUpIHJldHVybjsKICAgICAgc3RhdGUuaXRlbXMgPSAo +cmVzICYmIHJlcy5pdGVtcykgfHwgW107CiAgICAgIHJlY29tcHV0ZSgpOyBidWlsZFNoZWxsKCk7 +CiAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgIGlmICghc3RhdGUpIHJldHVybjsKICAg +ICAgc3RhdGUuaG9zdC5pbm5lckhUTUwgPSAiIjsKICAgICAgc3RhdGUuaG9zdC5hcHBlbmRDaGls +ZChlbCgiZGl2IiwgeyBjbGFzczogImxjLXN1bS10IiwgdGV4dDogIktvbm50ZSAvYXBpL21pZ3Jh +dGlvbiBuaWNodCBsYWRlbi4iIH0pKTsKICAgIH0pOwogIH0KCiAgLy8gVHJlZmZlciArIFN0YXR1 +cyBnZWdlbiBkZW4gTElWRS1OYXYtQmF1bSAobmV1KSBiZXJlY2huZW4uIE1hbnVlbGwgenVnZXdp +ZXNlbmUKICAvLyBaaWVsZSAoX21hbnVhbCkgaGFiZW4gVm9ycmFuZyB2b3IgZGVtIGF1dG9tYXRp +c2NoZW4gUGZhZC1NYXRjaGluZy4KICBmdW5jdGlvbiByZWNvbXB1dGUoKSB7CiAgICBpZiAoIXN0 +YXRlIHx8ICFzdGF0ZS5pdGVtcykgcmV0dXJuOwogICAgdmFyIG1hcHMgPSBocmVmTWFwKCk7CiAg +ICBzdGF0ZS5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdCkgewogICAgICBpdC5fbmF2cyA9IGl0 +Ll9tYW51YWwgPyBbaXQuX21hbnVhbF0gOiBtYXRjaE5hdnMobWFwcywgaXQuc291cmNlKTsKICAg +ICAgaXQuX25hdiA9IGl0Ll9uYXZzWzBdIHx8IG51bGw7CiAgICAgIGl0Ll9zdGF0dXMgPSBzdGF0 +dXNPZihpdCk7CiAgICB9KTsKICB9CgogIC8vIC0tLSBWb3JmaWx0ZXIgKFN0YXR1cyAvIFR5cCAv +IFRleHRzdWNoZSkgLS0tCiAgZnVuY3Rpb24gbWF0Y2hUeXBlKGl0LCB0eXBlKSB7CiAgICBpZiAo +IXR5cGUpIHJldHVybiB0cnVlOwogICAgaWYgKHR5cGUgPT09ICJsaW5rbGlzdCIpIHJldHVybiBp +dC5raW5kID09PSAibGlua2xpc3QiOwogICAgaWYgKHR5cGUgPT09ICJmb2xkZXIiKSByZXR1cm4g +aXNGb2xkZXIoaXQpOwogICAgaWYgKHR5cGUgPT09ICJyZWRpcmVjdCIpIHJldHVybiBpdC5raW5k +ID09PSAicmVkaXJlY3QiOwogICAgaWYgKHR5cGUgPT09ICJ0aGluIikgcmV0dXJuIGlzVGhpbihp +dCk7CiAgICBpZiAodHlwZSA9PT0gInRhYmxlIikgcmV0dXJuIGl0LnN0YXRzICYmIGl0LnN0YXRz +LnRhYmxlID4gMDsKICAgIGlmICh0eXBlID09PSAid2FybiIpIHJldHVybiBpdC53YXJuaW5ncyAm +JiBpdC53YXJuaW5ncy5sZW5ndGggPiAwOwogICAgaWYgKHR5cGUgPT09ICJ2c25mZCIpIHJldHVy +biBpdC5jbGFzc2lmaWNhdGlvbiA9PT0gIlZTLU5mRCI7CiAgICBpZiAodHlwZSA9PT0gIm5mZCIp +IHJldHVybiBpdC5jbGFzc2lmaWNhdGlvbiA9PT0gIk5mRCI7CiAgICByZXR1cm4gdHJ1ZTsKICB9 +CiAgZnVuY3Rpb24gZmlsdGVyZWQoKSB7CiAgICB2YXIgZiA9IHN0YXRlLmZpbHRlciwgcSA9IChm +LnEgfHwgIiIpLnRvTG93ZXJDYXNlKCk7CiAgICByZXR1cm4gKHN0YXRlLml0ZW1zIHx8IFtdKS5m +aWx0ZXIoZnVuY3Rpb24gKGl0KSB7CiAgICAgIGlmIChmLnN0YXR1cyAmJiBpdC5fc3RhdHVzICE9 +PSBmLnN0YXR1cykgcmV0dXJuIGZhbHNlOwogICAgICBpZiAoIW1hdGNoVHlwZShpdCwgZi50eXBl +KSkgcmV0dXJuIGZhbHNlOwogICAgICBpZiAocSAmJiAoKGl0LnRpdGxlIHx8ICIiKSArICIgIiAr +IChpdC5zb3VyY2UgfHwgIiIpKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocSkgPCAwKSByZXR1cm4g +ZmFsc2U7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGNoaXAobGFi +ZWwsIGdyb3VwLCB2YWwpIHsKICAgIHZhciBhY3RpdmUgPSBzdGF0ZS5maWx0ZXJbZ3JvdXBdID09 +PSB2YWwgfHwgKCF2YWwgJiYgIXN0YXRlLmZpbHRlcltncm91cF0pOwogICAgcmV0dXJuIGVsKCJi +dXR0b24iLCB7IGNsYXNzOiAiYnRuICIgKyAoYWN0aXZlID8gInRpbnRlZCIgOiAiZ2hvc3QiKSAr +ICIgbWlnLWNoaXAiLCB0eXBlOiAiYnV0dG9uIiwgdGV4dDogbGFiZWwsCiAgICAgIG9uY2xpY2s6 +IGZ1bmN0aW9uICgpIHsgc3RhdGUuZmlsdGVyW2dyb3VwXSA9IHZhbDsgcGFpbnQoKTsgfSB9KTsK +ICB9CgogIC8vIEdydW5kZ2VydWVzdCBlaW5tYWwgYXVmYmF1ZW4gKFN1Y2hmZWxkIGJsZWlidCBl +cmhhbHRlbiAtPiBGb2t1cyBnZWh0IGJlaW0gVGlwcGVuIG5pY2h0IHZlcmxvcmVuKS4KICBmdW5j +dGlvbiBidWlsZFNoZWxsKCkgewogICAgdmFyIGhvc3QgPSBzdGF0ZS5ob3N0OyBob3N0LmlubmVy +SFRNTCA9ICIiOwogICAgc3RhdGUuYmFyRWwgPSBlbCgiZGl2IiwgeyBjbGFzczogIm1pZy1maWx0 +ZXIiIH0pOwogICAgc3RhdGUuc2VhcmNoRWwgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJzZWFyY2gi +LCBjbGFzczogIm1pZy1zZWFyY2giLCBwbGFjZWhvbGRlcjogIlN1Y2hlbiAoVGl0ZWwvUXVlbGxl +KeKApiIsCiAgICAgIHZhbHVlOiBzdGF0ZS5maWx0ZXIucSB8fCAiIiwgb25pbnB1dDogZnVuY3Rp +b24gKCkgeyBzdGF0ZS5maWx0ZXIucSA9IHRoaXMudmFsdWU7IHBhaW50KCk7IH0gfSk7CiAgICBz +dGF0ZS5idWxrRWwgPSBlbCgiZGl2IiwgeyBjbGFzczogIm1pZy1idWxrIiB9KTsKICAgIHN0YXRl +LnN1bUVsID0gZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1zdW0iIH0pOwogICAgc3RhdGUubGlzdEVs +ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJsYy1saXN0IiB9KTsKICAgIGhvc3QuYXBwZW5kQ2hpbGQo +c3RhdGUuYmFyRWwpOyBob3N0LmFwcGVuZENoaWxkKHN0YXRlLnNlYXJjaEVsKTsgaG9zdC5hcHBl +bmRDaGlsZChzdGF0ZS5idWxrRWwpOwogICAgaG9zdC5hcHBlbmRDaGlsZChzdGF0ZS5zdW1FbCk7 +IGhvc3QuYXBwZW5kQ2hpbGQoc3RhdGUubGlzdEVsKTsKICAgIHBhaW50KCk7CiAgfQogIGZ1bmN0 +aW9uIHBhaW50QmFyKCkgewogICAgdmFyIGJhciA9IHN0YXRlLmJhckVsOyBiYXIuaW5uZXJIVE1M +ID0gIiI7CiAgICBbWyJBbGxlIiwgIiJdLCBbIm9mZmVuIiwgIm9wZW4iXSwgWyJtaWdyaWVydCIs +ICJkb25lIl0sIFsia2VpbiBaaWVsIiwgIm5vVGFyZ2V0Il1dLmZvckVhY2goZnVuY3Rpb24gKGMp +IHsgYmFyLmFwcGVuZENoaWxkKGNoaXAoY1swXSwgInN0YXR1cyIsIGNbMV0pKTsgfSk7CiAgICBi +YXIuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibWlnLXNlcCIgfSkpOwogICAgW1si +YWxsZSBUeXBlbiIsICIiXSwgWyJPcmRuZXIiLCAiZm9sZGVyIl0sIFsiVmVyd2VpcyIsICJyZWRp +cmVjdCJdLCBbIkxpbmtsaXN0ZSIsICJsaW5rbGlzdCJdLCBbIlRhYmVsbGUiLCAidGFibGUiXSwg +WyJkw7xubiIsICJ0aGluIl0sIFsiV2FybnVuZyIsICJ3YXJuIl0sIFsiVlMtTmZEIiwgInZzbmZk +Il0sIFsiTmZEIiwgIm5mZCJdXS5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IGJhci5hcHBlbmRDaGls +ZChjaGlwKGNbMF0sICJ0eXBlIiwgY1sxXSkpOyB9KTsKICB9CiAgLy8gU3RhcGVsLUxlaXN0ZTog +emVpZ3QgQXVzd2FobCArIEtub3BmLCBzb2JhbGQgd2FybnVuZ3NmcmVpZSBUcmVmZmVyIGFuZ2Vo +YWt0IHNpbmQuCiAgZnVuY3Rpb24gcGFpbnRCdWxrKCkgewogICAgdmFyIGJhciA9IHN0YXRlLmJ1 +bGtFbDsgaWYgKCFiYXIpIHJldHVybjsKICAgIHZhciBzZWwgPSAoc3RhdGUuaXRlbXMgfHwgW10p +LmZpbHRlcihmdW5jdGlvbiAoaXQpIHsgcmV0dXJuIHN0YXRlLnNlbFtpdC5zbHVnXSAmJiBlbGln +aWJsZShpdCk7IH0pOwogICAgYmFyLmlubmVySFRNTCA9ICIiOwogICAgaWYgKCFzZWwubGVuZ3Ro +KSB7IGJhci5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyByZXR1cm47IH0KICAgIGJhci5zdHlsZS5k +aXNwbGF5ID0gImZsZXgiOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczog +ImxjLXN1bS10IiwgaHRtbDogIjxiPiIgKyBzZWwubGVuZ3RoICsgIjwvYj4gYXVzZ2V3w6RobHQg +KHdhcm51bmdzZnJlaSkiIH0pKTsKICAgIGJhci5hcHBlbmRDaGlsZChidG4oInByaW1hcnkiLCAi +Y2hlY2siLCAiQXVzd2FobCBtaWdyaWVyZW4iLCBidWxrTWlncmF0ZSkpOwogICAgYmFyLmFwcGVu +ZENoaWxkKGJ0bigiZ2hvc3QiLCAieCIsICJBdXN3YWhsIGxlZXJlbiIsIGZ1bmN0aW9uICgpIHsg +c3RhdGUuc2VsID0ge307IHBhaW50KCk7IH0pKTsKICB9CiAgZnVuY3Rpb24gYnVsa01pZ3JhdGUo +KSB7CiAgICB2YXIgc2VsID0gKHN0YXRlLml0ZW1zIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24gKGl0 +KSB7IHJldHVybiBzdGF0ZS5zZWxbaXQuc2x1Z10gJiYgZWxpZ2libGUoaXQpOyB9KTsKICAgIGlm +ICghc2VsLmxlbmd0aCkgcmV0dXJuOwogICAgaWYgKCFjb25maXJtKHNlbC5sZW5ndGggKyAiIERv +a3VtZW50KGUpIG9obmUgRWluemVscHLDvGZ1bmcgZGlyZWt0IMO8YmVybmVobWVuPyIpKSByZXR1 +cm47CiAgICBQcm9taXNlLmFsbChzZWwubWFwKGZ1bmN0aW9uIChpdCkgewogICAgICByZXR1cm4g +ZmV0Y2goIi9hcGkvbWlncmF0aW9uLyIgKyBlbmNvZGVVUklDb21wb25lbnQoaXQuc2x1ZyksIHsg +Y2FjaGU6ICJuby1zdG9yZSIgfSkKICAgICAgICAudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4g +ci5qc29uKCk7IH0pCiAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykgeyByZXR1cm4gKHJlcyAm +JiByZXMub2sgJiYgcmVzLmFydGljbGUpID8geyBpdDogaXQsIGFydDogcmVzLmFydGljbGUgfSA6 +IG51bGw7IH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsgcmV0dXJuIG51bGw7IH0pOwog +ICAgfSkpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdHMpIHsKICAgICAgdmFyIGxvYWRlZCA9IHJlc3Vs +dHMuZmlsdGVyKEJvb2xlYW4pLCBmYWlsZWQgPSByZXN1bHRzLmxlbmd0aCAtIGxvYWRlZC5sZW5n +dGg7CiAgICAgIHZhciBkb25lID0gMCwgYWxpYXNlZCA9IDA7CiAgICAgIGxvYWRlZC5mb3JFYWNo +KGZ1bmN0aW9uIChydykgewogICAgICAgIGlmICghcncuaXQuX25hdikgcmV0dXJuOwogICAgICAg +IFAubWlncmF0ZUluUGxhY2UocncuaXQuX25hdiwgcncuYXJ0KTsgICAgIC8vIF9taWdTb3VyY2Ug +c2V0enQgbWlncmF0ZUluUGxhY2UgYXVzIGFydC5zcmMKICAgICAgICBhbGlhc2VkICs9IGFsaWFz +U2libGluZ3MocncuaXQsIHJ3Lml0Ll9uYXYpOwogICAgICAgIGRvbmUrKzsKICAgICAgfSk7CiAg +ICAgIGlmIChkb25lKSB7CiAgICAgICAgUC5wZXJzaXN0TmF2KCk7ICAgICAgICAgICAgICAgICAg +ICAgICAgICAvLyBFSU4gUHVibGlzaCAoRGVib3VuY2UpIGZ1ZXIgZGVuIGdhbnplbiBTdGFwZWwK +ICAgICAgICBpZiAoUC5idWlsZEluZGV4KSBQLmJ1aWxkSW5kZXgoKTsKICAgICAgICBpZiAoUC5y +ZW5kZXJTaWRlYmFyKSBQLnJlbmRlclNpZGViYXIoKTsKICAgICAgICBQLnRvYXN0KGRvbmUgKyAi +IG1pZ3JpZXJ0IiArIChhbGlhc2VkID8gIiDCtyAiICsgYWxpYXNlZCArICIgVmVyd2Vpc2UiIDog +IiIpICsKICAgICAgICAgICAgICAgIChmYWlsZWQgPyAiIMK3ICIgKyBmYWlsZWQgKyAiIG5pY2h0 +IGxhZGJhciIgOiAiIikgKyAoUC5saXZlID8gIiAmIHZlcsO2ZmZlbnRsaWNodC4iIDogIi4iKSk7 +CiAgICAgIH0gZWxzZSBpZiAoZmFpbGVkKSB7CiAgICAgICAgUC50b2FzdChmYWlsZWQgKyAiIERv +a3VtZW50KGUpIG5pY2h0IGxhZGJhciDigJQgYml0dGUgZWluemVsbi4iLCB0cnVlKTsKICAgICAg +fQogICAgICBzdGF0ZS5zZWwgPSB7fTsKICAgICAgcmVjb21wdXRlKCk7IHBhaW50KCk7CiAgICB9 +KTsKICB9CiAgLy8gVm9yc2NoYXUgU2VpdGUtYW4tU2VpdGU6IGxpbmtzIE9yaWdpbmFsLVF1ZWxs +ZSwgcmVjaHRzIGtvbnZlcnRpZXJ0ZSBWb3JzY2hhdS4KICBmdW5jdGlvbiBvcGVuUHJldmlldyhp +dCkgewogICAgdmFyIHNyYyA9ICIvIiArIGVuY29kZVVSSShpdC5zb3VyY2UpLCBwcmV2ID0gImhl +bGZlci9taWdyYXRpb24vcHJldmlldy8iICsgaXQuc2x1ZyArICIuaHRtbCI7CiAgICB2YXIgYWN0 +cyA9IFt7IGxhYmVsOiAiSW4gbmV1ZW0gVGFiIiwga2luZDogImdob3N0Iiwgb25DbGljazogZnVu +Y3Rpb24gKCkgeyB3aW5kb3cub3BlbihwcmV2LCAiX2JsYW5rIiwgIm5vb3BlbmVyIik7IHJldHVy +biBmYWxzZTsgfSB9XTsKICAgIGlmIChpdC5fbmF2ICYmIGl0Ll9zdGF0dXMgIT09ICJkb25lIiAm +JiAhaXNUaGluKGl0KSkgeyAgICAgICAgICAgIC8vIEVkaXRvciBkaXJla3QgYXVzIGRlciBWb3Jz +Y2hhdSBlcnJlaWNoYmFyCiAgICAgIGFjdHMudW5zaGlmdCh7IGxhYmVsOiAiSW0gRWRpdG9yIMO2 +ZmZuZW4iLCBraW5kOiAicHJpbWFyeSIsIGljb246ICJlZGl0Iiwgb25DbGljazogZnVuY3Rpb24g +KCkgeyBvcGVuSW5FZGl0b3IoaXQpOyB9IH0pOwogICAgfQogICAgYWN0cy5wdXNoKHsgbGFiZWw6 +ICJTY2hsaWVzc2VuIiwga2luZDogImdob3N0IiB9KTsKICAgIFAubW9kYWwoewogICAgICB0aXRs +ZTogIlZvcnNjaGF1OiAiICsgKGl0LnRpdGxlIHx8IGl0LnNsdWcpLCBpY29uOiAiZG9jIiwgc2l6 +ZTogInhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICBob3N0LmFwcGVu +ZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibWlnLXByZXZiYXIiLCBodG1sOiAiPHNwYW4+UXVl +bGxlIChPcmlnaW5hbCk8L3NwYW4+PHNwYW4+S29udmVydGllcnQ8L3NwYW4+IiB9KSk7CiAgICAg +ICAgdmFyIHNwbGl0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJtaWctcHJldmlldyIgfSk7CiAgICAg +ICAgc3BsaXQuYXBwZW5kQ2hpbGQoZWwoImlmcmFtZSIsIHsgc3JjOiBzcmMsIHRpdGxlOiAiUXVl +bGxlIiB9KSk7CiAgICAgICAgc3BsaXQuYXBwZW5kQ2hpbGQoZWwoImlmcmFtZSIsIHsgc3JjOiBw +cmV2LCB0aXRsZTogIktvbnZlcnRpZXJ0IiB9KSk7CiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChz +cGxpdCk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IGFjdHMKICAgIH0pOwogIH0KICBmdW5jdGlv +biBwYWludCgpIHsKICAgIGlmICghc3RhdGUgfHwgIXN0YXRlLmxpc3RFbCkgcmV0dXJuOwogICAg +cGFpbnRCYXIoKTsKICAgIHZhciBpdGVtcyA9IHN0YXRlLml0ZW1zIHx8IFtdLCBsaXN0ID0gZmls +dGVyZWQoKTsKICAgIGZ1bmN0aW9uIG4ocykgeyByZXR1cm4gaXRlbXMuZmlsdGVyKGZ1bmN0aW9u +IChpKSB7IHJldHVybiBpLl9zdGF0dXMgPT09IHM7IH0pLmxlbmd0aDsgfQogICAgc3RhdGUuc3Vt +RWwuaW5uZXJIVE1MID0gIiI7CiAgICBzdGF0ZS5zdW1FbC5hcHBlbmRDaGlsZChlbCgiZGl2Iiwg +eyBjbGFzczogImxjLXN1bS10IiwKICAgICAgaHRtbDogIjxiPiIgKyBuKCJvcGVuIikgKyAiPC9i +PiBvZmZlbiAmbWlkZG90OyA8Yj4iICsgbigiZG9uZSIpICsgIjwvYj4gbWlncmllcnQgJm1pZGRv +dDsgPGI+IiArIG4oIm5vVGFyZ2V0IikgKwogICAgICAgICAgICAiPC9iPiBvaG5lIFppZWwgJm1p +ZGRvdDsgIiArIGl0ZW1zLmxlbmd0aCArICIgZ2VzYW10IiArCiAgICAgICAgICAgIChsaXN0Lmxl +bmd0aCAhPT0gaXRlbXMubGVuZ3RoID8gIiAmbWlkZG90OyA8Yj4iICsgbGlzdC5sZW5ndGggKyAi +PC9iPiBnZWZpbHRlcnQiIDogIiIpIH0pKTsKICAgIHN0YXRlLmxpc3RFbC5pbm5lckhUTUwgPSAi +IjsKICAgIGlmICghaXRlbXMubGVuZ3RoKSB7CiAgICAgIHN0YXRlLmxpc3RFbC5hcHBlbmRDaGls +ZChlbCgiZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwKICAgICAgICB0ZXh0OiAiS2VpbmUga29u +dmVydGllcnRlbiBEb2t1bWVudGUuIEVyc3Qg4oCecHl0aG9uMyBoZWxmZXIvbWlncmF0ZV9kb2Nz +LnB5IC0td3JpdGXigJwgYXVzZsO8aHJlbi4iIH0pKTsKICAgICAgcmV0dXJuOwogICAgfQogICAg +aWYgKCFsaXN0Lmxlbmd0aCkgeyBzdGF0ZS5saXN0RWwuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg +Y2xhc3M6ICJsYy1lbXB0eSIsIHRleHQ6ICJLZWluZSBUcmVmZmVyIGbDvHIgZGllc2VuIEZpbHRl +ci4iIH0pKTsgcGFpbnRCdWxrKCk7IHJldHVybjsgfQogICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9u +IChpdCkgeyBzdGF0ZS5saXN0RWwuYXBwZW5kQ2hpbGQocm93RWwoaXQpKTsgfSk7CiAgICBwYWlu +dEJ1bGsoKTsKICB9CgogIGZ1bmN0aW9uIGJhZGdlKHN0YXR1cykgewogICAgaWYgKHN0YXR1cyA9 +PT0gImRvbmUiKSByZXR1cm4gZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtYmFkZ2Ugb2siLCB0ZXh0 +OiAibWlncmllcnQiIH0pOwogICAgaWYgKHN0YXR1cyA9PT0gIm5vVGFyZ2V0IikgcmV0dXJuIGVs +KCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIGJhZCIsIHRleHQ6ICJrZWluIFppZWwiIH0pOwog +ICAgcmV0dXJuIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIGlkbGUiLCB0ZXh0OiAib2Zm +ZW4iIH0pOwogIH0KICBmdW5jdGlvbiBidG4oa2luZCwgaWNvbiwgbGFiZWwsIG9uY2xpY2spIHsK +ICAgIHJldHVybiBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biAiICsga2luZCwgdHlwZTogImJ1 +dHRvbiIsCiAgICAgIGh0bWw6IGljKGljb24pICsgIjxzcGFuPiIgKyBQLmVzY2FwZUh0bWwobGFi +ZWwpICsgIjwvc3Bhbj4iLCBvbmNsaWNrOiBvbmNsaWNrIH0pOwogIH0KCiAgZnVuY3Rpb24gcm93 +RWwoaXQpIHsKICAgIHZhciByb3cgPSBlbCgiZGl2IiwgeyBjbGFzczogImxjLXJvdyIgfSk7CiAg +ICB2YXIgcGF0aFR4dCA9IGl0LnNvdXJjZTsKICAgIGlmIChpdC5fc3RhdHVzICE9PSAiZG9uZSIg +JiYgaXQuX25hdikgewogICAgICBwYXRoVHh0ICs9ICIgICDihpIgICAiICsgKGl0Ll9uYXYubGFi +ZWwgfHwgIiIpOwogICAgICBpZiAoaXQuX25hdnMubGVuZ3RoID4gMSkgcGF0aFR4dCArPSAiICAo +KyIgKyAoaXQuX25hdnMubGVuZ3RoIC0gMSkgKyAiIHdlaXRlcmUpIjsKICAgIH0KICAgIHZhciBs +YmwgPSBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1sYmwiLCB0ZXh0OiBpdC50aXRsZSB8fCBpdC5z +bHVnIH0pOwogICAgaWYgKGlzRm9sZGVyKGl0KSkgbGJsLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwg +eyBjbGFzczogIm1pZy10YWciLCB0ZXh0OiAiT3JkbmVyIiB9KSk7CiAgICBlbHNlIGlmIChpdC5r +aW5kID09PSAicmVkaXJlY3QiKSBsYmwuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi +bWlnLXRhZyIsIHRleHQ6ICJWZXJ3ZWlzIiB9KSk7CiAgICBlbHNlIGlmIChpdC5raW5kID09PSAi +bGlua2xpc3QiKSBsYmwuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibWlnLXRhZyIs +IHRleHQ6ICJMaW5rbGlzdGUiIH0pKTsKICAgIGVsc2UgaWYgKGl0LnN0YXRzICYmIGl0LnN0YXRz +LnRhYmxlID4gMCkgbGJsLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm1pZy10YWci +LCB0ZXh0OiAiVGFiZWxsZSIgfSkpOwogICAgaWYgKGlzRm9sZGVyKGl0KSkgbGJsLmFwcGVuZENo +aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImxjLXBhdGggbW9ubyIsIHRpdGxlOiBpdC5mb2xkZXIs +IHRleHQ6ICIgICIgKyBpdC5mb2xkZXIgfSkpOwogICAgaWYgKGl0LmNsYXNzaWZpY2F0aW9uKSBs +YmwuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibWlnLWNscyBjbHMtIiArIGl0LmNs +YXNzaWZpY2F0aW9uLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksICItIikudG9Mb3dlckNhc2UoKSwg +dGV4dDogaXQuY2xhc3NpZmljYXRpb24gfSkpOwogICAgdmFyIG1haW4gPSBlbCgic3BhbiIsIHsg +Y2xhc3M6ICJsYy1tYWluIiB9LCBbbGJsLCBlbCgic3BhbiIsIHsgY2xhc3M6ICJsYy1wYXRoIG1v +bm8iLCB0ZXh0OiBwYXRoVHh0IH0pXSk7CiAgICBpZiAoaXQud2FybmluZ3MgJiYgaXQud2Fybmlu +Z3MubGVuZ3RoKSB7CiAgICAgIG1haW4uYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi +bGMtcGF0aCIsIHN0eWxlOiAiY29sb3I6dmFyKC0tZGFuZ2VyKSIsCiAgICAgICAgaHRtbDogaWMo +ImFsZXJ0IikgKyAiICIgKyBQLmVzY2FwZUh0bWwoaXQud2FybmluZ3Muam9pbigiIMK3ICIpKSB9 +KSk7CiAgICB9CgogICAgLy8gQXVzd2FobC1DaGVja2JveCBudXIgZnVlciB3YXJudW5nc2ZyZWll +IG9mZmVuZSBUcmVmZmVyIChTdGFwZWwtVWViZXJuYWhtZSkuCiAgICBpZiAoZWxpZ2libGUoaXQp +KSB7CiAgICAgIHZhciBjYiA9IGVsKCJpbnB1dCIsIHsgdHlwZTogImNoZWNrYm94IiwgY2xhc3M6 +ICJtaWctcm93LWNoZWNrIiB9KTsKICAgICAgY2IuY2hlY2tlZCA9ICEhc3RhdGUuc2VsW2l0LnNs +dWddOwogICAgICBjYi5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsgc3RhdGUuc2VsW2l0LnNsdWdd +ID0gY2IuY2hlY2tlZDsgcGFpbnRCdWxrKCk7IH07CiAgICAgIHJvdy5hcHBlbmRDaGlsZChjYik7 +CiAgICB9IGVsc2UgewogICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi +bWlnLXJvdy1jaGVjayIsIHN0eWxlOiAidmlzaWJpbGl0eTpoaWRkZW4iIH0pKTsKICAgIH0KCiAg +ICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBzdHlsZTogImRpc3BsYXk6ZmxleDtnYXA6OHB4O2Zs +ZXg6MCAwIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyIiB9KTsKICAgIGFjdHMuYXBwZW5kQ2hpbGQo +YnRuKCJnaG9zdCIsICJkb2MiLCAiVm9yc2NoYXUiLCBmdW5jdGlvbiAoKSB7IG9wZW5QcmV2aWV3 +KGl0KTsgfSkpOwoKICAgIGlmIChpdC5fc3RhdHVzID09PSAiZG9uZSIpIHsKICAgICAgYWN0cy5h +cHBlbmRDaGlsZChidG4oImdob3N0IiwgImFydGljbGUiLCAiQW56ZWlnZW4iLCBmdW5jdGlvbiAo +KSB7IGlmIChpdC5fbmF2ICYmIFAubmF2aWdhdGUpIFAubmF2aWdhdGUoaXQuX25hdik7IH0pKTsK +ICAgIH0gZWxzZSBpZiAoaXNGb2xkZXIoaXQpICYmIGl0Ll9uYXYpIHsKICAgICAgLy8gT3JkbmVy +LVplaWdlci1TZWl0ZSAtPiBOYXYtS25vdGVuIHdpcmQgT3JkbmVyLUtub3RlbiAob2VmZm5ldCBW +ZXJ6ZWljaG5pcywgSUUtTW9kdXMpLgogICAgICBhY3RzLmFwcGVuZENoaWxkKGJ0bigicHJpbWFy +eSIsICJkb2MiLCAiQWxzIE9yZG5lciDDvGJlcm5laG1lbiIsIGZ1bmN0aW9uICgpIHsgbWlncmF0 +ZUZvbGRlcihpdCk7IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChidG4oImdob3N0IiwgImxp +bmsiLCAiQW5kZXJlcyBaaWVs4oCmIiwgZnVuY3Rpb24gKCkgeyBhc3NpZ25UYXJnZXQoaXQpOyB9 +KSk7CiAgICB9IGVsc2UgaWYgKGl0LmtpbmQgPT09ICJyZWRpcmVjdCIpIHsKICAgICAgLy8gRWlu +emVsLVZlcndlaXMgYXVmIGVpbiBEb2t1bWVudCAtPiBhbHMgYmVzdGVoZW5kZW4gTGluayBiZWxh +c3NlbiAoa2VpbiBQcm9zYS1BcnRpa2VsKS4KICAgICAgYWN0cy5hcHBlbmRDaGlsZChlbCgic3Bh +biIsIHsgY2xhc3M6ICJtdXRlZCIsIHN0eWxlOiAiZm9udC1zaXplOjEycHgiLCB0ZXh0OiAiVmVy +d2VpcyBhdWYgZWluIERva3VtZW50IOKAlCBhbHMgTGluayBiZWxhc3NlbiIgfSkpOwogICAgfSBl +bHNlIGlmIChpc1RoaW4oaXQpKSB7CiAgICAgIC8vIGlmcmFtZS9SZWRpcmVjdC9MZWVyIC0+IGtl +aW4gbGVlcmVyIEFydGlrZWw7IGJlc3RlaGVuZGVuIExpbmsgYmVsYXNzZW4uCiAgICAgIGFjdHMu +YXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibXV0ZWQiLCBzdHlsZTogImZvbnQtc2l6 +ZToxMnB4IiwgdGV4dDogImtlaW4gZXJrZW5uYmFyZXIgSW5oYWx0IOKAlCBhbHMgTGluayBiZWxh +c3NlbiAvIFF1ZWxsZSBwcsO8ZmVuIiB9KSk7CiAgICB9IGVsc2UgaWYgKGl0Ll9zdGF0dXMgPT09 +ICJub1RhcmdldCIpIHsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChidG4oImdob3N0IiwgImxpbmsi +LCAiWmllbCB6dXdlaXNlbuKApiIsIGZ1bmN0aW9uICgpIHsgYXNzaWduVGFyZ2V0KGl0KTsgfSkp +OwogICAgfSBlbHNlIHsgICAvLyBvcGVuCiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQoYnRuKCJwcmlt +YXJ5IiwgImVkaXQiLCAiaW0gRWRpdG9yIMO2ZmZuZW4iLCBmdW5jdGlvbiAoKSB7IG9wZW5JbkVk +aXRvcihpdCk7IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChidG4oImdob3N0IiwgImxpbmsi +LCAiQW5kZXJlcyBaaWVs4oCmIiwgZnVuY3Rpb24gKCkgeyBhc3NpZ25UYXJnZXQoaXQpOyB9KSk7 +CiAgICB9CgogICAgcm93LmFwcGVuZENoaWxkKGJhZGdlKGl0Ll9zdGF0dXMpKTsKICAgIHJvdy5h +cHBlbmRDaGlsZChtYWluKTsKICAgIHJvdy5hcHBlbmRDaGlsZChhY3RzKTsKICAgIHJldHVybiBy +b3c7CiAgfQoKICAvLyBNYW51ZWxsZXIgWmllbC1QaWNrZXI6IGVpbmVuIGJlc3RlaGVuZGVuIE5h +di1CbGF0dGtub3RlbiBhbHMgSW4tUGxhY2UtWmllbCB3YWVobGVuLgogIGZ1bmN0aW9uIGFzc2ln +blRhcmdldChpdCkgewogICAgaWYgKCFQLm9wZW5OYXZQaWNrZXIpIHsgUC50b2FzdCgiWmllbC1Q +aWNrZXIgbmljaHQgdmVyZsO8Z2Jhci4iLCB0cnVlKTsgcmV0dXJuOyB9CiAgICBQLm9wZW5OYXZQ +aWNrZXIoZnVuY3Rpb24gKHIpIHsKICAgICAgaWYgKCFyIHx8ICFyLl9pZCkgcmV0dXJuOwogICAg +ICB2YXIgbm9kZSA9IFAuZmluZE5hdkl0ZW1CeUlkKHIuX2lkKTsKICAgICAgaWYgKCFub2RlKSB7 +IFAudG9hc3QoIktub3RlbiBuaWNodCBnZWZ1bmRlbi4iLCB0cnVlKTsgcmV0dXJuOyB9CiAgICAg +IGlmIChub2RlLmFydGljbGUgJiYgIW5vZGUuaHJlZiAmJgogICAgICAgICAgIWNvbmZpcm0oIuKA +niIgKyAobm9kZS5sYWJlbCB8fCAiIikgKyAi4oCcIGlzdCBiZXJlaXRzIGVpbiBBcnRpa2VsLiBJ +bmhhbHQgbWl0IGRlbSBtaWdyaWVydGVuIERva3VtZW50IMO8YmVyc2NocmVpYmVuPyIpKSByZXR1 +cm47CiAgICAgIGl0Ll9tYW51YWwgPSBub2RlOwogICAgICByZWNvbXB1dGUoKTsgcGFpbnQoKTsK +ICAgIH0pOwogIH0KCiAgLy8gT3JkbmVyLVplaWdlci1TZWl0ZSBpbi1wbGFjZSB1ZWJlcm5laG1l +bjogTmF2LUtub3RlbiAtPiBPcmRuZXItS25vdGVuIChQZmFkIGF1cyBkZW0gS29udmVydGVyKS4K +ICBmdW5jdGlvbiBtaWdyYXRlRm9sZGVyKGl0KSB7CiAgICBpZiAoIWl0Ll9uYXYgfHwgIWl0LmZv +bGRlcikgeyBQLnRvYXN0KCJLZWluIFppZWwtS25vdGVuIG9kZXIgUGZhZC4iLCB0cnVlKTsgcmV0 +dXJuOyB9CiAgICB2YXIgbm9kZSA9IFAubWlncmF0ZUZvbGRlckluUGxhY2UoaXQuX25hdiwgaXQu +Zm9sZGVyKTsKICAgIGlmICghbm9kZSkgeyBQLnRvYXN0KCJPcmRuZXJwZmFkIG5pY2h0IHp1bMOk +c3NpZy4iLCB0cnVlKTsgcmV0dXJuOyB9CiAgICBub2RlLl9taWdTb3VyY2UgPSBpdC5zb3VyY2U7 +ICAgICAgICAgICAgICAgICAvLyBzdGFiaWxlIFp1b3JkbnVuZyBRdWVsbGUgLT4gbWlncmllcnRl +ciBPcmRuZXItS25vdGVuCiAgICB2YXIgZXh0cmEgPSAoaXQuX25hdnMgJiYgaXQuX25hdnNbMF0g +PT09IG5vZGUpID8gYWxpYXNTaWJsaW5ncyhpdCwgbm9kZSkgOiAwOwogICAgUC5wZXJzaXN0TmF2 +KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXV0by1QdWJsaXNoIChEZWJvdW5j +ZSAtPiAxIFB1Ymxpc2gpCiAgICBpZiAoUC5idWlsZEluZGV4KSBQLmJ1aWxkSW5kZXgoKTsKICAg +IGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVuZGVyU2lkZWJhcigpOwogICAgUC50b2FzdCgiQWxz +IE9yZG5lciDDvGJlcm5vbW1lbiIgKyAoZXh0cmEgPyAiIMK3ICIgKyBleHRyYSArICIgVmVyd2Vp +c2UiIDogIiIpICsgKFAubGl2ZSA/ICIgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICIuIikpOwogICAg +cmVjb21wdXRlKCk7IHBhaW50KCk7CiAgfQoKICBmdW5jdGlvbiBvcGVuSW5FZGl0b3IoaXQpIHsK +ICAgIGlmICghaXQuX25hdikgeyBQLnRvYXN0KCJLZWluIFppZWwtS25vdGVuLiIsIHRydWUpOyBy +ZXR1cm47IH0KICAgIHZhciB0YXJnZXQgPSBpdC5fbmF2OwogICAgZmV0Y2goIi9hcGkvbWlncmF0 +aW9uLyIgKyBlbmNvZGVVUklDb21wb25lbnQoaXQuc2x1ZyksIHsgY2FjaGU6ICJuby1zdG9yZSIg +fSkKICAgICAgLnRoZW4oZnVuY3Rpb24gKHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KQogICAgICAu +dGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKCFyZXMgfHwgIXJlcy5vayB8fCAhcmVz +LmFydGljbGUpIHsgUC50b2FzdCgiS29udmVydGllcnRlcyBEb2t1bWVudCBuaWNodCBsYWRiYXIu +IiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgIGlmIChzdGF0ZSkgc3RhdGUucGVuZGluZ0l0ZW0g +PSBpdDsgICAgICAgIC8vIGZ1ZXIgZGFzIEF1dG8tQWxpYXNpbmcgaW4gb25Eb25lCiAgICAgICAg +UC5vcGVuTWlncmF0aW9uRWRpdG9yKHRhcmdldCwgcmVzLmFydGljbGUpOwogICAgICB9KQogICAg +ICAuY2F0Y2goZnVuY3Rpb24gKCkgeyBQLnRvYXN0KCJLb252ZXJ0aWVydGVzIERva3VtZW50IG5p +Y2h0IGxhZGJhci4iLCB0cnVlKTsgfSk7CiAgfQoKfSkod2luZG93LlApOwo= +### FILE: assets/js/features/nav.js | 35817 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgbmF2LmpzCiAgIExpbmtlIFNwYWx0 +ZSAoTmF2aWdhdGlvbiksIE5hdmlnaWVyZW4vRG9rdW1lbnRhbnNpY2h0LCBBcnRpa2VsLUFuemVp +Z2UsCiAgIGludGVybmVyIFZlcmxhdWYgKGZ1ZXIg4oCeTmV1ZXMgJiBHZWFlbmRlcnRlcyIpLgog +ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBl +bCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9IFAuZXNjYXBlSHRtbDsK +CiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0gYWt0dWVsbGVzIFppZWwgKi8KICBQLm1hcmtDdXJyZW50ID0gZnVuY3Rpb24gKGtl +eSkgewogICAgUC5jdXJyZW50SHJlZiA9IGtleSB8fCBudWxsOwogICAgUC4kJCgiLmlzLWN1cnJl +bnQiKS5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7IG4uY2xhc3NMaXN0LnJlbW92ZSgiaXMtY3VycmVu +dCIpOyB9KTsKICAgIGlmICgha2V5KSByZXR1cm47CiAgICBQLiQkKCcjc2lkZWJhciBhW2RhdGEt +a2V5XScpLmZvckVhY2goZnVuY3Rpb24gKGEpIHsgaWYgKGEuZ2V0QXR0cmlidXRlKCJkYXRhLWtl +eSIpID09PSBrZXkpIGEuY2xhc3NMaXN0LmFkZCgiaXMtY3VycmVudCIpOyB9KTsKICB9OwoKICAv +KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLSBOYXZpZ2llcmVuICovCiAgUC5uYXZJdGVtS2V5ID0gZnVuY3Rpb24gKGl0KSB7IHJldHVy +biBpdC5hcnRpY2xlID8gImFydDoiICsgKGl0Ll9pZCB8fCBpdC5sYWJlbCkgOiBpdC5mb2xkZXIg +PyAiZGlyOiIgKyAoaXQuX2lkIHx8IGl0LmZvbGRlcikgOiAoaXQuaHJlZiB8fCAiIikgKyAifCIg +KyAoaXQubGFiZWwgfHwgIiIpOyB9OwoKICBQLm5hdmlnYXRlID0gZnVuY3Rpb24gKGl0KSB7CiAg +ICBpZiAoIWl0KSByZXR1cm47CiAgICBpdCA9IFAucmVzb2x2ZVJlZihpdCk7ICAgICAgICAgIC8v +IEFsaWFzLS9SZWZlcmVuei1Lbm90ZW4gYXVmIGthbm9uaXNjaGVzIFppZWwgYXVmbG9lc2VuIChQ +aGFzZSAxMCkKICAgIGlmICghaXQpIHJldHVybjsKICAgIFAucmVtZW1iZXIoaXQpOwogICAgaWYg +KFAuYXBwRm9ySXRlbSkgeyB2YXIgX2FwcE9wZW4gPSBQLmFwcEZvckl0ZW0oaXQpOyBpZiAoX2Fw +cE9wZW4pIHsgX2FwcE9wZW4oaXQpOyBQLmNsb3NlTW9iaWxlKCk7IHJldHVybjsgfSB9ICAgLy8g +QXBwLVJvdXRlICh6LkIuICJBcnp0IGFuZm9yZGVybiIpCiAgICBpZiAoaXQuYXJ0aWNsZSkgeyBQ +Lm9wZW5BcnRpY2xlKGl0KTsgUC5jbG9zZU1vYmlsZSgpOyByZXR1cm47IH0KICAgIGlmIChpdC5m +b2xkZXIpIHsgUC5vcGVuRm9sZGVyKGl0KTsgUC5jbG9zZU1vYmlsZSgpOyByZXR1cm47IH0gICAv +LyBXaW5kb3dzLU9yZG5lci1BbnNpY2h0IChJRS1Nb2R1cykKICAgIGlmICgoaXQuY29sIHx8IC9e +Y29sOi8udGVzdChpdC5ocmVmIHx8ICIiKSkgJiYgUC5vcGVuTGlua0NvbGxlY3Rpb24pIHsgICAv +LyBMaW5rc2FtbWx1bmcgKHJlY2h0cywgc3RhdHQgUm9zdGVyKQogICAgICBQLm9wZW5MaW5rQ29s +bGVjdGlvbihpdC5jb2wgfHwgU3RyaW5nKGl0LmhyZWYpLnNsaWNlKDQpKTsgUC5jbG9zZU1vYmls +ZSgpOyByZXR1cm47CiAgICB9CiAgICB2YXIgaHJlZiA9IGl0LmhyZWYgfHwgIiIsIHQgPSBpdC50 +YXJnZXQgfHwgImNvbnRlbnQiOwogICAgLy8gU2hhcmUtL0RhdGVpLS9Qcm9ncmFtbS1aaWVsZSBv +ZWZmbmV0IGltIFBmbGVnZS1Nb2R1cyBkZXIgbG9rYWxlIEhlbGZlciAoU3RhcnQtUHJvY2VzczsK +ICAgIC8vIGJlaSBPZmZpY2UgZGlyZWt0LCBiZWkgT3JkbmVyIEV4cGxvcmVyLCBiZWkgZnJlaWdl +Z2ViZW5lciAuZXhlIG1pdCBXaW5kb3dzLVNpY2hlcmhlaXRzYWJmcmFnZSkuCiAgICBpZiAoaHJl +ZiAmJiBQLmxpdmUgJiYgUC5pc09wZW5hYmxlUGF0aCAmJiBQLmlzT3BlbmFibGVQYXRoKGhyZWYp +KSB7IFAub3BlbkV4dGVybmFsKGhyZWYpOyBQLmNsb3NlTW9iaWxlKCk7IHJldHVybjsgfQogICAg +aWYgKGhyZWYgJiYgIVAuc2FmZVVybChocmVmKSkgewogICAgICBpZiAoUC5zYWZlU2hhcmVIcmVm +KGhyZWYpKSB7IHdpbmRvdy5vcGVuKGhyZWYsICJfYmxhbmsiLCAibm9vcGVuZXIiKTsgUC50b2Fz +dCgiSW0gRXhwbG9yZXIgZ2XDtmZmbmV0OiAiICsgKGl0LmxhYmVsIHx8IGhyZWYpKTsgcmV0dXJu +OyB9ICAvLyBCZWhvZXJkZW4tU2hhcmUgKERhdGVpL09yZG5lciwgSUUpCiAgICAgIFAudG9hc3Qo +IlVuc2ljaGVyZXIgTGluayBibG9ja2llcnQuIiwgdHJ1ZSk7IHJldHVybjsgICAvLyBrZWluIGph +dmFzY3JpcHQ6L2RhdGE6L2ZpbGU6CiAgICB9CiAgICBpZiAoL15tYWlsdG86L2kudGVzdChocmVm +KSkgeyB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGhyZWY7IHJldHVybjsgfQogICAgaWYgKCFocmVm +KSByZXR1cm47CiAgICBpZiAodCA9PT0gIm1vZGFsIikgeyBQLm9wZW5MaW5rTW9kYWwoaHJlZiwg +aXQubGFiZWwgfHwgIiIpOyBQLmNsb3NlTW9iaWxlKCk7IHJldHVybjsgfSAgIC8vIGltIE1vZGFs +LUZlbnN0ZXIKICAgIGlmICh0ID09PSAiX2JsYW5rIikgeyB3aW5kb3cub3BlbihocmVmLCAiX2Js +YW5rIik7IFAudG9hc3QoIkV4dGVybiBnZcO2ZmZuZXQ6ICIgKyAoaXQubGFiZWwgfHwgaHJlZikp +OyByZXR1cm47IH0gICAvLyBuZXVlciBUYWIKICAgIFAub3BlbkRvYyhocmVmLCBpdC5sYWJlbCk7 +ICAgLy8gTWl0dGUgKFN0YW5kYXJkKQogICAgUC5jbG9zZU1vYmlsZSgpOwogIH07CgogIC8qIExp +bmsgaW4gZWluZW0gTW9kYWwtRmVuc3RlciBvZWZmbmVuIChpZnJhbWUpIC0gZnVlciBpbnRlcm5l +IERva3VtZW50ZSB1bmQgZXh0ZXJuZSBVUkxzLiAqLwogIFAub3BlbkxpbmtNb2RhbCA9IGZ1bmN0 +aW9uIChocmVmLCBsYWJlbCkgewogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiBsYWJlbCB8fCAi +QW5zaWNodCIsIGljb246ICJleHQiLCBzaXplOiAieGwiLAogICAgICBib2R5OiBmdW5jdGlvbiAo +aG9zdCkgewogICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgibGluay1tb2RhbC1ib2R5Iik7CiAg +ICAgICAgdmFyIGYgPSBlbCgiaWZyYW1lIiwgeyBjbGFzczogImxpbmstbW9kYWwtZnJhbWUiLCB0 +aXRsZTogbGFiZWwgfHwgIkluaGFsdCIgfSk7CiAgICAgICAgZi5zZXRBdHRyaWJ1dGUoInNyYyIs +IGhyZWYpOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoZik7CiAgICAgIH0sCiAgICAgIGFjdGlv +bnM6IFsKICAgICAgICB7IGxhYmVsOiAiSW4gbmV1ZW0gVGFiIiwga2luZDogImdob3N0IiwgYWxp +Z246ICJsZWZ0Iiwga2VlcE9wZW46IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgd2luZG93 +Lm9wZW4oaHJlZiwgIl9ibGFuayIsICJub29wZW5lciIpOyB9IH0sCiAgICAgICAgeyBsYWJlbDog +IlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0KICAgICAgXQogICAgfSk7CiAgfTsKCiAgUC5v +cGVuRG9jID0gZnVuY3Rpb24gKGhyZWYsIGxhYmVsKSB7CiAgICB2YXIgYyA9ICQoIi5jZW50ZXIi +KTsgYy5jbGFzc0xpc3QuYWRkKCJkb2MiKTsgYy5jbGFzc0xpc3QucmVtb3ZlKCJhcnRpY2xlIik7 +CiAgICAkKCIjY3YtcGF0aCIpLnRleHRDb250ZW50ID0gbGFiZWwgPyBsYWJlbCArICIgIMK3ICAi +ICsgaHJlZiA6IGhyZWY7CiAgICAkKCIjY3YtZnJhbWUiKS5zZXRBdHRyaWJ1dGUoInNyYyIsIGhy +ZWYpOwogICAgUC5tYXJrQ3VycmVudCgoaHJlZiB8fCAiIikgKyAifCIgKyAobGFiZWwgfHwgIiIp +KTsKICB9OwoKICAvKiBEYXRlaSBvZGVyIE9yZG5lciBMT0tBTCBvZWZmbmVuOiBkZXIgQnJvd3Nl +ciBkYXJmIGZpbGU6Ly8gbmljaHQgb2VmZm5lbiwgYWxzbyBtYWNodCBlcwogICAgIGRlciBsb2th +bGUgSGVsZmVyIHBlciBTdGFydC1Qcm9jZXNzIChPZmZpY2UtRGF0ZWkgLT4gRXhjZWwvV29yZC9Q +b3dlclBvaW50LCBPcmRuZXIgLT4KICAgICBFeHBsb3JlcikuIEFsbG93bGlzdCArIEVuZHVuZyB3 +ZXJkZW4gc2VydmVyc2VpdGlnIGdlcHJ1ZWZ0IChzaWVoZSBjb250cmFjdC5qc29uKS4gKi8KICBQ +Lm9wZW5FeHRlcm5hbCA9IGZ1bmN0aW9uIChwYXRoKSB7CiAgICBpZiAoIVAubGl2ZSkgeyBQLnRv +YXN0KCJPZWZmbmVuIG51ciBpbSBQZmxlZ2UtTW9kdXMgKGxva2FsZXIgSGVsZmVyKS4iLCB0cnVl +KTsgcmV0dXJuOyB9CiAgICBQLnRvYXN0KCJXaXJkIGdlw7ZmZm5ldCDigKYiKTsKICAgIHJldHVy +biBmZXRjaCgiL2FwaS9vcGVuIiwgeyBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiQ29udGVu +dC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcGF0 +aDogcGF0aCB9KSB9KQogICAgICAudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7 +IH0pCiAgICAgIC50aGVuKGZ1bmN0aW9uIChqKSB7IGlmICghaiB8fCAhai5vaykgeyBQLnRvYXN0 +KChqICYmIGouZXJyb3IpIHx8ICJPZWZmbmVuIGZlaGxnZXNjaGxhZ2VuLiIsIHRydWUpOyB9IH0p +CiAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7IFAudG9hc3QoIk9lZmZuZW4gZmVobGdlc2NobGFn +ZW4gKFZlcmJpbmR1bmcpLiIsIHRydWUpOyB9KTsKICB9OwogIC8qIFNoYXJlLS9EYXRlaS0vUHJv +Z3JhbW0tWmllbD8gKFVOQyBcXGhvc3QsIHByb3Rva29sbC1yZWxhdGl2IC8vaG9zdCwgZmlsZTov +LywgTGF1ZndlcmsgWDpcKQogICAgIFNvbGNoZSBaaWVsZSBvZWZmbmV0L3N0YXJ0ZXQgZGVyIGxv +a2FsZSBIZWxmZXIgKGRlciBCcm93c2VyIGRhcmYgZmlsZTovLyBuaWNodCkuICovCiAgUC5pc09w +ZW5hYmxlUGF0aCA9IGZ1bmN0aW9uIChoKSB7CiAgICBoID0gU3RyaW5nKGggfHwgIiIpOwogICAg +cmV0dXJuIC9eZmlsZTovaS50ZXN0KGgpIHx8IC9eKFxcXFx8XC9cLykvLnRlc3QoaCkgfHwgL15b +QS1aYS16XTpbXFxcL10vLnRlc3QoaCk7CiAgfTsKCiAgLyogS25vdGVuIGJlYXJiZWl0ZW4gKFJl +ZGFrdGV1cik6IEJlemVpY2hudW5nLCBaaWVsL1BmYWQgdW5kIEljb24gZWluZXMgTmF2LUtub3Rl +bnMKICAgICBkaXJla3QgYWVuZGVybiArIHNwZWljaGVybiAodmVyb2VmZmVudGxpY2h0IGRpZSBO +YXZpZ2F0aW9uKS4gTG9lc3QgdS5hLiBkZWZla3RlIFBmYWRlCiAgICAgKHouQi4gT3JkbmVyLUtu +b3RlbikgdW5kIGRpZSBJY29uLVdhaGwgLSBkYXRlbmdldHJpZWJlbiwga2VpbiBKU09OLUVkaXRp +ZXJlbiBub2V0aWcuICovCiAgUC5OT0RFX0lDT05TID0gWyIiLCAiZG9jIiwgImxpbmsiLCAiZXh0 +IiwgImFydGljbGUiLCAic2VhcmNoIiwgImdyaWQiLCAibWFwIiwgImluYm94IiwgImNsb2NrIiwg +InNoaWVsZCIsICJib2x0IiwgImFsZXJ0IiwgInN0YXIiLCAicGluIiwgInVzZXIiLCAiYXoiLCAi +bWVudSIsICJwYW5lbEwiLCAicGFuZWxSIiwgImRvd25sb2FkIiwgInVwbG9hZCIsICJwcmludCIs +ICJjaGVjayIsICJlZGl0Il07CiAgUC5lZGl0Tm9kZURsZyA9IGZ1bmN0aW9uIChub2RlLCBvblNh +dmVkKSB7CiAgICBpZiAoIW5vZGUpIHJldHVybjsKICAgIGlmICghUC5saXZlKSB7IFAudG9hc3Qo +IkJlYXJiZWl0ZW4gbnVyIGltIFBmbGVnZS1Nb2R1cyAobG9rYWxlciBIZWxmZXIpLiIsIHRydWUp +OyByZXR1cm47IH0KICAgIHZhciBpc0ZvbGRlciA9ICEhbm9kZS5mb2xkZXI7CiAgICB2YXIgbGJs +SW4sIHBhdGhJbiwgaWNvU2VsLCBwcmV2LCBvcGVuU2VsOwogICAgZnVuY3Rpb24gcm93KGxhYmVs +VGV4dCwgZmllbGQpIHsKICAgICAgcmV0dXJuIGVsKCJkaXYiLCB7IGNsYXNzOiAibmUtcm93IiB9 +LCBbZWwoImxhYmVsIiwgeyBjbGFzczogIm5lLWxibCIsIHRleHQ6IGxhYmVsVGV4dCB9KSwgZmll +bGRdKTsKICAgIH0KICAgIFAubW9kYWwoewogICAgICB0aXRsZTogIktub3RlbiBiZWFyYmVpdGVu +IiwgaWNvbjogImVkaXQiLCBzaXplOiAibWQiLAogICAgICBib2R5OiBmdW5jdGlvbiAoaG9zdCkg +ewogICAgICAgIGxibEluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIHZhbHVlOiBub2Rl +LmxhYmVsIHx8ICIiIH0pOwogICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQocm93KCJCZXplaWNobnVu +ZyIsIGxibEluKSk7CiAgICAgICAgcGF0aEluID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIs +IHZhbHVlOiBpc0ZvbGRlciA/IChub2RlLmZvbGRlciB8fCAiIikgOiAobm9kZS5ocmVmIHx8ICIi +KSB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHJvdyhpc0ZvbGRlciA/ICJPcmRuZXItUGZh +ZCAoU2hhcmUvVU5DKSIgOiAiWmllbCAoUGZhZCAvIFVSTCAvIHBvcnRhbDo8aWQ+KSIsIHBhdGhJ +bikpOwogICAgICAgIGljb1NlbCA9IGVsKCJzZWxlY3QiLCB7fSk7CiAgICAgICAgUC5OT0RFX0lD +T05TLmZvckVhY2goZnVuY3Rpb24gKG4pIHsKICAgICAgICAgIHZhciBvID0gZWwoIm9wdGlvbiIs +IHsgdmFsdWU6IG4sIHRleHQ6IG4gfHwgIihhdXRvbWF0aXNjaCBuYWNoIFR5cCkiIH0pOwogICAg +ICAgICAgaWYgKChub2RlLmljb24gfHwgIiIpID09PSBuKSBvLnNlbGVjdGVkID0gdHJ1ZTsKICAg +ICAgICAgIGljb1NlbC5hcHBlbmRDaGlsZChvKTsKICAgICAgICB9KTsKICAgICAgICBwcmV2ID0g +ZWwoInNwYW4iLCB7IGNsYXNzOiAibGktaWMgbmUtcHJldiIsIGh0bWw6IGljKG5vZGUuaWNvbiB8 +fCAoaXNGb2xkZXIgPyAiZG9jIiA6ICJkb2MiKSkgfSk7CiAgICAgICAgaWNvU2VsLmFkZEV2ZW50 +TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgcHJldi5pbm5lckhUTUwgPSBpYyhpY29T +ZWwudmFsdWUpIHx8ICIiOyB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKHJvdygiSWNvbiIs +IGVsKCJkaXYiLCB7IGNsYXNzOiAibmUtaWNvd3JhcCIgfSwgW2ljb1NlbCwgcHJldl0pKSk7CiAg +ICAgICAgaWYgKCFpc0ZvbGRlcikgewogICAgICAgICAgb3BlblNlbCA9IGVsKCJzZWxlY3QiLCB7 +fSk7CiAgICAgICAgICBbWyJjb250ZW50IiwgIk1pdHRlIChpbSBQb3J0YWwpIl0sIFsiX2JsYW5r +IiwgIk5ldWVyIFRhYiJdLCBbIm1vZGFsIiwgIk1vZGFsLUZlbnN0ZXIiXV0uZm9yRWFjaChmdW5j +dGlvbiAobykgewogICAgICAgICAgICB2YXIgb3AgPSBlbCgib3B0aW9uIiwgeyB2YWx1ZTogb1sw +XSwgdGV4dDogb1sxXSB9KTsKICAgICAgICAgICAgaWYgKChub2RlLnRhcmdldCB8fCAiY29udGVu +dCIpID09PSBvWzBdKSBvcC5zZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgIG9wZW5TZWwuYXBw +ZW5kQ2hpbGQob3ApOwogICAgICAgICAgfSk7CiAgICAgICAgICBob3N0LmFwcGVuZENoaWxkKHJv +dygiw5ZmZm5lbiBpbiIsIG9wZW5TZWwpKTsKICAgICAgICB9CiAgICAgICAgaG9zdC5hcHBlbmRD +aGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6IGlzRm9sZGVyCiAgICAg +ICAgICA/ICJPcmRuZXIgYWxzIFNoYXJlLVBmYWQgKFxcXFxwb2xpemVpLm5ydy5kZVxcLi4uIG9k +ZXIgLy8uLi4pLiBXaXJkIGltIFBmbGVnZS1Nb2R1cyBsb2thbCBnZW9lZmZuZXQuIgogICAgICAg +ICAgOiAiUGZhZCByZWxhdGl2IHp1bSBQb3J0YWwsIHBvcnRhbDo8aWQ+LCBTaGFyZS1QZmFkIG9k +ZXIgdm9sbHN0YWVuZGlnZSBVUkwuIiB9KSk7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6IFsKICAg +ICAgICB7IGxhYmVsOiAiQWJicmVjaGVuIiwga2luZDogImdob3N0IiB9LAogICAgICAgIHsgbGFi +ZWw6ICJTcGVpY2hlcm4iLCBraW5kOiAicHJpbWFyeSIsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsK +ICAgICAgICAgICAgdmFyIGxibCA9IChsYmxJbi52YWx1ZSB8fCAiIikudHJpbSgpOwogICAgICAg +ICAgICB2YXIgcHRoID0gKHBhdGhJbi52YWx1ZSB8fCAiIikudHJpbSgpOwogICAgICAgICAgICBp +ZiAobGJsKSBub2RlLmxhYmVsID0gbGJsOwogICAgICAgICAgICBpZiAoaXNGb2xkZXIpIHsgbm9k +ZS5mb2xkZXIgPSBwdGg7IH0gZWxzZSB7IG5vZGUuaHJlZiA9IHB0aDsgfQogICAgICAgICAgICBp +ZiAoaWNvU2VsLnZhbHVlKSBub2RlLmljb24gPSBpY29TZWwudmFsdWU7IGVsc2UgZGVsZXRlIG5v +ZGUuaWNvbjsKICAgICAgICAgICAgaWYgKCFpc0ZvbGRlciAmJiBvcGVuU2VsKSB7IGlmIChvcGVu +U2VsLnZhbHVlICYmIG9wZW5TZWwudmFsdWUgIT09ICJjb250ZW50Iikgbm9kZS50YXJnZXQgPSBv +cGVuU2VsLnZhbHVlOyBlbHNlIGRlbGV0ZSBub2RlLnRhcmdldDsgfQogICAgICAgICAgICBkZWxl +dGUgbm9kZS5icm9rZW47ICAgLy8gUGZhZCBuZXUgZ2VzZXR6dCAtPiBCcm9rZW4tTWFya2llcnVu +ZyB3ZWcgKExpbmtjaGVjayBwcnVlZnQgbmV1KQogICAgICAgICAgICBpZiAoUC5wZXJzaXN0TmF2 +KSBQLnBlcnNpc3ROYXYoKTsKICAgICAgICAgICAgaWYgKFAuYnVpbGRJbmRleCkgUC5idWlsZElu +ZGV4KCk7CiAgICAgICAgICAgIGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVuZGVyU2lkZWJhcigp +OwogICAgICAgICAgICBQLnRvYXN0KCJHZXNwZWljaGVydC4iKTsKICAgICAgICAgICAgaWYgKG9u +U2F2ZWQpIHsgdHJ5IHsgb25TYXZlZCgpOyB9IGNhdGNoIChlKSB7fSB9CiAgICAgICAgICB9IH0K +ICAgICAgXQogICAgfSk7CiAgfTsKCiAgLyogT3JkbmVyLUtub3RlbjogTW9kYWwgbWl0IGRlciBW +ZXJ6ZWljaG5pc2xpc3RlIHZvbSBIZWxmZXIgKEdFVCAvYXBpL2ZvbGRlcikuIFVudGVyb3JkbmVy +CiAgICAgbmF2aWdpZXJlbiBpbi1wbGFjZTsgRGF0ZWllbiB1bmQgIkltIEV4cGxvcmVyIG9lZmZu +ZW4iIGdlaGVuIHVlYmVyIFAub3BlbkV4dGVybmFsLiBPaG5lCiAgICAgSGVsZmVyIChyZWluZXIg +TGVzZXIgcGVyIGZpbGU6Ly8pIHplaWd0IGRhcyBNb2RhbCBudXIgZGVuIFBmYWQuICovCiAgUC5v +cGVuRm9sZGVyID0gZnVuY3Rpb24gKGl0KSB7CiAgICB2YXIgcmF3ID0gaXQuZm9sZGVyIHx8ICIi +OwogICAgUC5tYXJrQ3VycmVudChQLm5hdkl0ZW1LZXkoaXQpKTsKICAgIGlmICghUC5saXZlKSB7 +CiAgICAgIHZhciBzcmMwID0gUC5mb2xkZXJTcmMocmF3KTsKICAgICAgUC5tb2RhbCh7IHRpdGxl +OiBpdC5sYWJlbCB8fCAiT3JkbmVyIiwgaWNvbjogImRvYyIsIHNpemU6ICJ4bCIsIGJvZHk6IGZ1 +bmN0aW9uIChob3N0KSB7CiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6 +ICJtdXRlZCIsIHRleHQ6IHNyYzAgPyAoIk9yZG5lciAobnVyIGltIFBmbGVnZS1Nb2R1cyBvZWZm +ZW5iYXIpOiAiICsgc3JjMCkgOiAiT3JkbmVycGZhZCBuaWNodCB2ZXJmw7xnYmFyIG9kZXIgbmlj +aHQgenVsw6Rzc2lnLiIgfSkpOwogICAgICB9LCBhY3Rpb25zOiBbeyBsYWJlbDogIlNjaGxpZXNz +ZW4iLCBraW5kOiAiZ2hvc3QiIH1dIH0pOwogICAgICByZXR1cm47CiAgICB9CiAgICBQLm1vZGFs +KHsKICAgICAgdGl0bGU6IGl0LmxhYmVsIHx8ICJPcmRuZXIiLCBpY29uOiAiZG9jIiwgc2l6ZTog +InhsIiwKICAgICAgYm9keTogZnVuY3Rpb24gKGhvc3QpIHsKICAgICAgICB2YXIgY3VyUGF0aCA9 +IHJhdzsKICAgICAgICB2YXIgYmFyID0gZWwoImRpdiIsIHsgY2xhc3M6ICJmb2xkZXItYmFyIiB9 +KTsKICAgICAgICB2YXIgY3VyID0gZWwoInNwYW4iLCB7IGNsYXNzOiAibW9ubyBtdXRlZCBmb2xk +ZXItY3VyIiB9KTsKICAgICAgICBiYXIuYXBwZW5kQ2hpbGQoY3VyKTsKICAgICAgICBob3N0LmFw +cGVuZENoaWxkKGJhcik7CiAgICAgICAgdmFyIGxpc3RCb3ggPSBlbCgiZGl2IiwgeyBjbGFzczog +ImZvbGRlci1saXN0IiB9KTsKICAgICAgICBob3N0LmFwcGVuZENoaWxkKGxpc3RCb3gpOwogICAg +ICAgIGZ1bmN0aW9uIGxvYWQocCkgewogICAgICAgICAgY3VyUGF0aCA9IHA7IGN1ci50ZXh0Q29u +dGVudCA9IHA7CiAgICAgICAgICBsaXN0Qm94LmlubmVySFRNTCA9ICIiOyBsaXN0Qm94LmFwcGVu +ZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiTGFkZeKApiIgfSkpOwog +ICAgICAgICAgZmV0Y2goIi9hcGkvZm9sZGVyP3BhdGg9IiArIGVuY29kZVVSSUNvbXBvbmVudChw +KSkudGhlbihmdW5jdGlvbiAocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24g +KGopIHsKICAgICAgICAgICAgbGlzdEJveC5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgICAgaWYg +KCFqIHx8ICFqLm9rKSB7IGxpc3RCb3guYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJt +dXRlZCIsIHRleHQ6IChqICYmIGouZXJyb3IpIHx8ICJPcmRuZXIgbmljaHQgbGFkYmFyLiIgfSkp +OyByZXR1cm47IH0KICAgICAgICAgICAgaWYgKGoucGF0aCkgeyBjdXJQYXRoID0gai5wYXRoOyBj +dXIudGV4dENvbnRlbnQgPSBqLnBhdGg7IH0KICAgICAgICAgICAgaWYgKCFqLmVudHJpZXMgfHwg +IWouZW50cmllcy5sZW5ndGgpIHsgbGlzdEJveC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz +czogIm11dGVkIiwgdGV4dDogIihsZWVyKSIgfSkpOyByZXR1cm47IH0KICAgICAgICAgICAgai5l +bnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICB2YXIgcm93ID0gZWwo +ImRpdiIsIHsgY2xhc3M6ICJmb2xkZXItcm93IiwgdGl0bGU6IGUucGF0aCwKICAgICAgICAgICAg +ICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKGUua2luZCA9PT0gImRpciIpIHsgbG9hZChl +LnBhdGgpOyB9IGVsc2UgeyBQLm9wZW5FeHRlcm5hbChlLnBhdGgpOyB9IH0gfSk7CiAgICAgICAg +ICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImZyLWljIiwgaHRtbDog +aWMoZS5raW5kID09PSAiZGlyIiA/ICJkb2MiIDogImV4dCIpIH0pKTsKICAgICAgICAgICAgICBy +b3cuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiZnItbmFtZSIsIHRleHQ6IGUubmFt +ZSB9KSk7CiAgICAgICAgICAgICAgaWYgKGUua2luZCA9PT0gImZpbGUiKSByb3cuYXBwZW5kQ2hp +bGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiZnItbWV0YSBtb25vIG11dGVkIiwgdGV4dDogKGUuZXh0 +ID8gZS5leHQudG9VcHBlckNhc2UoKSA6ICIiKSArIChlLnNpemUgPyAiICAiICsgTWF0aC5yb3Vu +ZChlLnNpemUgLyAxMDI0KSArICIgS0IiIDogIiIpIH0pKTsKICAgICAgICAgICAgICBsaXN0Qm94 +LmFwcGVuZENoaWxkKHJvdyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkuY2F0Y2goZnVu +Y3Rpb24gKCkgeyBsaXN0Qm94LmlubmVySFRNTCA9ICIiOyBsaXN0Qm94LmFwcGVuZENoaWxkKGVs +KCJkaXYiLCB7IGNsYXNzOiAibXV0ZWQiLCB0ZXh0OiAiT3JkbmVyIG5pY2h0IGxhZGJhciAoVmVy +YmluZHVuZykuIiB9KSk7IH0pOwogICAgICAgIH0KICAgICAgICBsb2FkKHJhdyk7CiAgICAgIH0s +CiAgICAgIGFjdGlvbnM6IFsKICAgICAgICB7IGxhYmVsOiAiUGZhZCDDpG5kZXJuIiwga2luZDog +Imdob3N0IiwgYWxpZ246ICJsZWZ0Iiwgb25DbGljazogZnVuY3Rpb24gKGFwaSkgeyBhcGkuY2xv +c2UoKTsgUC5lZGl0Tm9kZURsZyhpdCwgZnVuY3Rpb24gKCkgeyBQLm9wZW5Gb2xkZXIoaXQpOyB9 +KTsgfSB9LAogICAgICAgIHsgbGFiZWw6ICJTY2hsaWVzc2VuIiwga2luZDogImdob3N0IiB9CiAg +ICAgIF0KICAgIH0pOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFydGlrZWwgYW56ZWlnZW4gKi8KICBQLm9wZW5B +cnRpY2xlID0gZnVuY3Rpb24gKGl0KSB7CiAgICB2YXIgYSA9IGl0LmFydGljbGUgfHwge30sIGMg +PSAkKCIuY2VudGVyIik7CiAgICBjLmNsYXNzTGlzdC5hZGQoImRvYyIsICJhcnRpY2xlIik7CiAg +ICAkKCIjY3YtcGF0aCIpLnRleHRDb250ZW50ID0gKGl0LmxhYmVsIHx8IGEudGl0bGUgfHwgIkFy +dGlrZWwiKTsKICAgIHZhciBob3N0ID0gJCgiI2N2LWFydGljbGUiKTsKICAgIGhvc3QuaW5uZXJI +VE1MID0gIiI7CiAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LWhlYWQiIH0p +OwogICAgLy8gU3RhbmQtRGF0dW0gb2JlbiByZWNodHMgKGF1cyBkZXIgUXVlbGxlKTsgZGlyZWt0 +IGRhcnVudGVyIGRhcyAiZ2XDpG5kZXJ0Ii1EYXR1bS4KICAgIGlmIChhLmRhdGUpIGhlYWQuYXBw +ZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJhcnQtZGF0ZSBtb25vIiwgdGV4dDogIlN0YW5k +OiAiICsgUC5mbXREYXRlKGEuZGF0ZSkgfSkpOwogICAgaWYgKGEudXBkYXRlZCkgaGVhZC5hcHBl +bmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImFydC1kYXRlIGFydC11cGRhdGVkIG1vbm8iLCB0 +ZXh0OiAiZ2XDpG5kZXJ0OiAiICsgUC5mbXREYXRlKGEudXBkYXRlZCkgfSkpOwogICAgLy8gVlMt +RWluc3R1ZnVuZyBhbHMgUGxha2V0dGUgKG51ciB3ZW5uIG5pY2h0ICJvZmZlbiIpLgogICAgaWYg +KGEuY2xhc3NpZmljYXRpb24gJiYgYS5jbGFzc2lmaWNhdGlvbiAhPT0gIm9mZmVuIikgewogICAg +ICBoZWFkLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LWNsYXNzIGNscy0iICsg +YS5jbGFzc2lmaWNhdGlvbi5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCAiLSIpLnRvTG93ZXJDYXNl +KCksIHRleHQ6IGEuY2xhc3NpZmljYXRpb24gfSkpOwogICAgfQogICAgaGVhZC5hcHBlbmRDaGls +ZChlbCgiaDEiLCB7IHRleHQ6IGEudGl0bGUgfHwgaXQubGFiZWwgfHwgIiIgfSkpOwogICAgdmFy +IG1ldGEgPSBlbCgiZGl2IiwgeyBjbGFzczogImFydC1tZXRhIG1vbm8iIH0pOwogICAgaWYgKGEu +YXV0aG9yKSBtZXRhLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBodG1sOiBpYygidXNlciIpICsg +IjxzcGFuPiIgKyBlc2NhcGVIdG1sKGEuYXV0aG9yKSArICI8L3NwYW4+IiB9KSk7CiAgICBpZiAo +YS52YWxpZFVudGlsKSBtZXRhLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyB0ZXh0OiAiZ8O8bHRp +ZyBiaXMgIiArIFAuZm10RGF0ZShhLnZhbGlkVW50aWwpIH0pKTsKICAgIGlmIChhLnJldmlld2Vk +QXQpIG1ldGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IHRleHQ6ICJnZXByw7xmdCAiICsgUC5m +bXREYXRlKGEucmV2aWV3ZWRBdCkgKyAoYS5yZXZpZXdlZEJ5ID8gIiDCtyAiICsgYS5yZXZpZXdl +ZEJ5IDogIiIpIH0pKTsKICAgIGlmIChtZXRhLmNoaWxkTm9kZXMubGVuZ3RoKSBoZWFkLmFwcGVu +ZENoaWxkKG1ldGEpOwogICAgaWYgKGEudGFncyAmJiBhLnRhZ3MubGVuZ3RoKSB7CiAgICAgIHZh +ciB0ZyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LXRhZ3MiIH0pOwogICAgICBhLnRhZ3MuZm9y +RWFjaChmdW5jdGlvbiAodCkgeyB0Zy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJh +cnQtdGFnIiwgdGV4dDogdCB9KSk7IH0pOwogICAgICBoZWFkLmFwcGVuZENoaWxkKHRnKTsKICAg +IH0KICAgIGhvc3QuYXBwZW5kQ2hpbGQoaGVhZCk7CiAgICB2YXIgYm9keURpdiA9IGVsKCJkaXYi +LCB7IGNsYXNzOiAiYXJ0LWJvZHkiIH0pOwogICAgaG9zdC5hcHBlbmRDaGlsZChib2R5RGl2KTsK +ICAgIGlmIChhLmJvZHlFeHQgJiYgKGEuaHRtbCA9PSBudWxsIHx8IGEuaHRtbCA9PT0gIiIpICYm +IFAubG9hZEFydGljbGVCb2R5KSB7CiAgICAgIC8vIEF1c2dlbGFnZXJ0ZXIgQm9keSAtPiBmYXVs +IG5hY2hsYWRlbiwgZGFubiBwb3J0YWwtZ2VyZW5kZXJ0IChTYW5pdGl6ZXIgYmxlaWJ0KS4KICAg +ICAgYm9keURpdi5pbm5lckhUTUwgPSAiPHAgY2xhc3M9XCJtdXRlZFwiPkluaGFsdCB3aXJkIGdl +bGFkZW4g4oCmPC9wPiI7CiAgICAgIFAubG9hZEFydGljbGVCb2R5KGl0Ll9pZCwgZnVuY3Rpb24g +KGh0bWwsIGVycikgewogICAgICAgIGJvZHlEaXYuaW5uZXJIVE1MID0gZXJyID8gIjxwIGNsYXNz +PVwibXV0ZWRcIj5JbmhhbHQga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuLjwvcD4iIDogUC5z +YW5pdGl6ZUh0bWwoaHRtbCB8fCAiIik7CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgYm9k +eURpdi5pbm5lckhUTUwgPSBQLnNhbml0aXplSHRtbChhLmh0bWwgfHwgIiIpOwogICAgfQogICAg +UC5jdXJBcnRpY2xlID0gaXQ7ICAgICAgICAgICAgICAgICAvLyBmdWVyIGRlbiAiQmVhcmJlaXRl +biItS25vcGYgaW4gZGVyIExlaXN0ZQogICAgUC5tYXJrQ3VycmVudChQLm5hdkl0ZW1LZXkoaXQp +KTsKICB9OwoKICBQLmNsb3NlRG9jID0gZnVuY3Rpb24gKCkgeyB2YXIgYyA9ICQoIi5jZW50ZXIi +KTsgYy5jbGFzc0xpc3QucmVtb3ZlKCJkb2MiLCAiYXJ0aWNsZSIpOyAkKCIjY3YtZnJhbWUiKS5z +ZXRBdHRyaWJ1dGUoInNyYyIsICJhYm91dDpibGFuayIpOyAkKCIjY3YtYXJ0aWNsZSIpLmlubmVy +SFRNTCA9ICIiOyBQLmN1ckFydGljbGUgPSBudWxsOyBQLm1hcmtDdXJyZW50KG51bGwpOyB9OwoK +ICAvKiBBa3R1ZWxsZW4gQXJ0aWtlbCBhbHMgUERGOiBCcm93c2VyLURydWNrIG1pdCBpc29saWVy +dGVtIEBtZWRpYS1wcmludC1TdHlsZXNoZWV0LgogICAgIEtlaW4gVmVuZG9yLUpTLCBvZmZsaW5l +LCBhdWNoIGZ1ZXIgTGVzZXIgKGZpbGU6Ly8pLiBEZXIgQXJ0aWtlbHRpdGVsIHdpcmQga3Vyegog +ICAgIHp1bSBkb2N1bWVudC50aXRsZSAtPiBCcm93c2VyIHNjaGxhZWd0IGlobiBhbHMgUERGLURh +dGVpbmFtZW4gdm9yLiAqLwogIFAucHJpbnRBcnRpY2xlID0gZnVuY3Rpb24gKCkgewogICAgdmFy +IGl0ID0gUC5jdXJBcnRpY2xlOyBpZiAoIWl0KSByZXR1cm47CiAgICB2YXIgYSA9IGl0LmFydGlj +bGUgfHwge307CiAgICB2YXIgdGl0bGUgPSAoYS50aXRsZSB8fCBpdC5sYWJlbCB8fCAiQXJ0aWtl +bCIpOwogICAgdmFyIHByZXZUaXRsZSA9IGRvY3VtZW50LnRpdGxlOwogICAgdmFyIGRvbmUgPSBm +YWxzZTsKICAgIGZ1bmN0aW9uIGNsZWFudXAoKSB7IGlmIChkb25lKSByZXR1cm47IGRvbmUgPSB0 +cnVlOyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInByaW50aW5nIik7IGRvY3VtZW50 +LnRpdGxlID0gcHJldlRpdGxlOyB9CiAgICBkb2N1bWVudC50aXRsZSA9IHRpdGxlOwogICAgZG9j +dW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJwcmludGluZyIpOwogICAgd2luZG93Lm9uYWZ0ZXJw +cmludCA9IGNsZWFudXA7CiAgICB0cnkgeyB3aW5kb3cucHJpbnQoKTsgfSBjYXRjaCAoZSkgeyBj +bGVhbnVwKCk7IHJldHVybjsgfQogICAgc2V0VGltZW91dChjbGVhbnVwLCAxNTAwKTsgICAvLyBG +YWxsYmFjaywgZmFsbHMgb25hZnRlcnByaW50IG5pY2h0IGZldWVydCAoei4gQi4gQWJicnVjaCkK +ICB9OwoKICAvKiBBcnRpa2VsLUluaGFsdCBNSVQgQmlsZGVybiBpbiBkaWUgWndpc2NoZW5hYmxh +Z2UgKGVpbiBLbGljaykgLT4gd29hbmRlcnMgKFdvcmQvT3V0bG9vay8KICAgICBNYWlsKSBwZXIg +U3RyZytWIGVpbmZ1ZWdlbi4gQmlsZGVyIHdlcmRlbiwgd28gbW9lZ2xpY2gsIGFscyBkYXRhOi1V +UkkgZWluZ2ViZXR0ZXQgKHBlcgogICAgIENhbnZhcykgLT4gcmVpc2VuIG1pdCBkZW0gRWluZnVl +Z2VuIG1pdDsgc29uc3QgYWJzb2x1dGUgVVJMLiBGYWxsYmFjazogTGl2ZS1BdXN3YWhsICsKICAg +ICBleGVjQ29tbWFuZCgnY29weScpLiBPZmZsaW5lL2ZpbGU6Ly8tdGF1Z2xpY2g7IGtlaW4gVmVu +ZG9yLUpTLiAqLwogIGZ1bmN0aW9uIGltZ1RvRGF0YVVSTChpbWcpIHsKICAgIHRyeSB7CiAgICAg +IGlmICghaW1nIHx8ICFpbWcubmF0dXJhbFdpZHRoKSByZXR1cm4gbnVsbDsKICAgICAgdmFyIGMg +PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKICAgICAgYy53aWR0aCA9IGltZy5u +YXR1cmFsV2lkdGg7IGMuaGVpZ2h0ID0gaW1nLm5hdHVyYWxIZWlnaHQ7CiAgICAgIGMuZ2V0Q29u +dGV4dCgiMmQiKS5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKICAgICAgcmV0dXJuIGMudG9EYXRhVVJM +KCJpbWFnZS9wbmciKTsgICAgICAgICAgICAgICAgIC8vIHdpcmZ0IGJlaSAidGFpbnRlZCIgKHou +IEIuIGZpbGU6Ly8pIC0+IEZhbGxiYWNrCiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBudWxsOyB9 +CiAgfQogIFAuY29weUFydGljbGUgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaG9zdCA9ICQoIiNj +di1hcnRpY2xlIik7CiAgICBpZiAoIWhvc3QgfHwgIVAuY3VyQXJ0aWNsZSkgeyBQLnRvYXN0KCJL +ZWluIEFydGlrZWwgZ2XDtmZmbmV0LiIsIHRydWUpOyByZXR1cm47IH0KICAgIHZhciBjbG9uZSA9 +IGhvc3QuY2xvbmVOb2RlKHRydWUpOwogICAgdmFyIGxpdmUgPSBob3N0LnF1ZXJ5U2VsZWN0b3JB +bGwoImltZyIpLCBjbCA9IGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoImltZyIpOwogICAgZm9yICh2 +YXIgaSA9IDA7IGkgPCBjbC5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZCA9IGltZ1RvRGF0YVVS +TChsaXZlW2ldKTsKICAgICAgaWYgKGQpIGNsW2ldLnNldEF0dHJpYnV0ZSgic3JjIiwgZCk7CiAg +ICAgIGVsc2UgaWYgKGxpdmVbaV0pIGNsW2ldLnNldEF0dHJpYnV0ZSgic3JjIiwgbGl2ZVtpXS5z +cmMpOyAgIC8vIGFic29sdXRlIFVSTCAoSGVsZmVyL2h0dHApCiAgICAgIGNsW2ldLnJlbW92ZUF0 +dHJpYnV0ZSgibG9hZGluZyIpOyBjbFtpXS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc3JjIik7CiAg +ICB9CiAgICB2YXIgaHRtbCA9ICc8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+JyArIGNsb25lLmlubmVy +SFRNTDsKICAgIHZhciB0ZXh0ID0gaG9zdC5pbm5lclRleHQgfHwgIiI7CiAgICBmdW5jdGlvbiBv +aygpIHsgUC50b2FzdCgiQXJ0aWtlbCBrb3BpZXJ0IOKAlCB3b2FuZGVycyBtaXQgU3RyZytWIGVp +bmbDvGdlbi4iKTsgfQogICAgZnVuY3Rpb24gbGVnYWN5KCkgewogICAgICB0cnkgewogICAgICAg +IHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7IHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsK +ICAgICAgICB2YXIgciA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7IHIuc2VsZWN0Tm9kZUNvbnRl +bnRzKGhvc3QpOyBzZWwuYWRkUmFuZ2Uocik7CiAgICAgICAgdmFyIGRvbmUgPSBkb2N1bWVudC5l +eGVjQ29tbWFuZCgiY29weSIpOyBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgZG9uZSA/ +IG9rKCkgOiBQLnRvYXN0KCJLb3BpZXJlbiBuaWNodCBtw7ZnbGljaC4iLCB0cnVlKTsKICAgICAg +fSBjYXRjaCAoZSkgeyBQLnRvYXN0KCJLb3BpZXJlbiBuaWNodCBtw7ZnbGljaC4iLCB0cnVlKTsg +fQogICAgfQogICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgd2luZG93LkNsaXBib2FyZEl0 +ZW0pIHsKICAgICAgdHJ5IHsKICAgICAgICB2YXIgaXRlbSA9IG5ldyB3aW5kb3cuQ2xpcGJvYXJk +SXRlbSh7CiAgICAgICAgICAidGV4dC9odG1sIjogbmV3IEJsb2IoW2h0bWxdLCB7IHR5cGU6ICJ0 +ZXh0L2h0bWwiIH0pLAogICAgICAgICAgInRleHQvcGxhaW4iOiBuZXcgQmxvYihbdGV4dF0sIHsg +dHlwZTogInRleHQvcGxhaW4iIH0pCiAgICAgICAgfSk7CiAgICAgICAgbmF2aWdhdG9yLmNsaXBi +b2FyZC53cml0ZShbaXRlbV0pLnRoZW4ob2ssIGxlZ2FjeSk7CiAgICAgIH0gY2F0Y2ggKGUpIHsg +bGVnYWN5KCk7IH0KICAgIH0gZWxzZSB7IGxlZ2FjeSgpOyB9CiAgfTsKCiAgLyogLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSFRNTC1T +YW5pdGl6ZXIgKGbDvHIgQXJ0aWtlbC1Cb2R5KSAqLwogIC8vIEFsbG93bGlzdDogbnVyIGRpZXNl +IFRhZ3MgdWViZXJsZWJlbi4gQWxsZXMgYW5kZXJlIChzY3JpcHQsIHN0eWxlLCBtc28tKiwKICAv +LyBPdXRsb29rLS9Xb3JkLU11ZWxsIGJlaW0gUmVpbmtvcGllcmVuKSB3aXJkIGVudGZlcm50LCBJ +bmhhbHQgYmxlaWJ0IGVyaGFsdGVuLgogIHZhciBBTExPV0VEID0geyBCOjEsU1RST05HOjEsSTox +LEVNOjEsVToxLFM6MSxQOjEsQlI6MSxVTDoxLE9MOjEsTEk6MSxIMjoxLEgzOjEsSDQ6MSxBOjEs +CiAgICAgICAgICAgICAgICAgIEJMT0NLUVVPVEU6MSxTUEFOOjEsRElWOjEsSFI6MSxDT0RFOjEs +UFJFOjEsRklHVVJFOjEsSU1HOjEsRklHQ0FQVElPTjoxLFRBQkxFOjEsVEhFQUQ6MSxUQk9EWTox +LFRSOjEsVEg6MSxURDoxIH07CiAgLy8gS29tcGxldHQgZW50ZmVybmVuIChzYW10IEluaGFsdCkg +4oCUIG5pZSBudXIgImF1c3BhY2tlbiIuCiAgdmFyIERST1AgPSB7IFNDUklQVDoxLCBTVFlMRTox +LCBJRlJBTUU6MSwgT0JKRUNUOjEsIEVNQkVEOjEsIExJTks6MSwgTUVUQToxLCBIRUFEOjEsIFRJ +VExFOjEsICJPOlAiOjEgfTsKICAvLyBTaWNoZXJlIFF1ZWxsZW4gZnVlciBCaWxkL1BERjogbG9r +YWxlIEFzc2V0LUFibGFnZSwgUG9ydGFsLURva3Mgb2RlciBEYXRhLVVSSSAoQmlsZCkuCiAgdmFy +IFNBRkVfU1JDID0gL14oZG9rdW1lbnRlXC98YmFvXC98ZGF0YTppbWFnZVwvKHBuZ3xqcGU/Z3xn +aWZ8d2VicHxibXApO2Jhc2U2NCx8aHR0cHM/OnxcL1wvfFwuXC5cLykvaTsKICBmdW5jdGlvbiBz +YWZlQ2xhc3ModikgeyByZXR1cm4gKHYgfHwgIiIpLnNwbGl0KC9ccysvKS5maWx0ZXIoZnVuY3Rp +b24gKGMpIHsgcmV0dXJuIC9eKGVtYmVkfGltZ3xwZGZ8cGRmLWljfHBkZi1uYW1lfHBkZi1tZXRh +KSQvLnRlc3QoYyk7IH0pLmpvaW4oIiAiKTsgfQogIC8vIE51ciB1bmdlZmFlaHJsaWNoZSBDU1Mt +RWlnZW5zY2hhZnRlbiAoQXVzcmljaHR1bmcvRmFyYmUvR3JvZXNzZSkgenVsYXNzZW4uCiAgdmFy +IFNBRkVfQ1NTID0gL14odGV4dC1hbGlnbnxjb2xvcnxiYWNrZ3JvdW5kLWNvbG9yfGZvbnQtc2l6 +ZXxmb250LXdlaWdodHxmb250LXN0eWxlfHRleHQtZGVjb3JhdGlvbnxwYWRkaW5nLWxlZnR8bWFy +Z2luLWxlZnQpJC87CiAgZnVuY3Rpb24gc2FmZVN0eWxlKHYpIHsKICAgIHJldHVybiAodiB8fCAi +Iikuc3BsaXQoIjsiKS5tYXAoZnVuY3Rpb24gKGQpIHsgcmV0dXJuIGQudHJpbSgpOyB9KS5maWx0 +ZXIoZnVuY3Rpb24gKGQpIHsKICAgICAgaWYgKCFkIHx8IGQuaW5kZXhPZigiOiIpIDwgMCkgcmV0 +dXJuIGZhbHNlOwogICAgICB2YXIgcHJvcCA9IGQuc3BsaXQoIjoiKVswXS50cmltKCkudG9Mb3dl +ckNhc2UoKTsKICAgICAgLy8gRGVmZW5zZS1pbi1EZXB0aDogQmFja3NsYXNoIChDU1MtRXNjYXBl +LVVtZ2VodW5nIHdpZSBcNzVybCkgc293aWUgYmVoYXZpb3IvLW1vei1iaW5kaW5nCiAgICAgIC8v +IChJRS9HZWNrby1MZWdhY3kpIHp1c2FldHpsaWNoIHp1ciB1cmwofGV4cHJlc3Npb258amF2YXNj +cmlwdDp8QGltcG9ydC1TcGVycmUgdmVyd2VyZmVuLgogICAgICBpZiAoZC5pbmRleE9mKCJcXCIp +ID49IDApIHJldHVybiBmYWxzZTsKICAgICAgaWYgKC91cmxcKHxleHByZXNzaW9ufGphdmFzY3Jp +cHQ6fEBpbXBvcnR8YmVoYXZpb3J8LW1vei1iaW5kaW5nL2kudGVzdChkKSkgcmV0dXJuIGZhbHNl +OwogICAgICByZXR1cm4gU0FGRV9DU1MudGVzdChwcm9wKTsKICAgIH0pLmpvaW4oIjsgIik7CiAg +fQogIFAuc2FuaXRpemVIdG1sID0gZnVuY3Rpb24gKGh0bWwpIHsKICAgIHZhciBib3ggPSBkb2N1 +bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgYm94LmlubmVySFRNTCA9IGh0bWwgfHwgIiI7CiAg +ICAoZnVuY3Rpb24gd2Fsayhub2RlKSB7CiAgICAgIHZhciBraWRzID0gQXJyYXkucHJvdG90eXBl +LnNsaWNlLmNhbGwobm9kZS5jaGlsZE5vZGVzKTsKICAgICAga2lkcy5mb3JFYWNoKGZ1bmN0aW9u +IChuKSB7CiAgICAgICAgaWYgKG4ubm9kZVR5cGUgPT09IDEpIHsKICAgICAgICAgIGlmIChEUk9Q +W24udGFnTmFtZV0pIHsgbm9kZS5yZW1vdmVDaGlsZChuKTsgcmV0dXJuOyB9CiAgICAgICAgICAv +LyBVbmJla2FubnRlcyBUYWcgKHdlZGVyIGVybGF1YnQgbm9jaCB2ZXJib3Rlbik6IGVudHdyYXBw +ZW4g4oCUIEFCRVIgZXJzdCBkZW4KICAgICAgICAgIC8vIFRlaWxiYXVtIHNhZXViZXJuLCBzb25z +dCB1ZWJlcmxlYmVuIG9uKi1IYW5kbGVyL1NjcmlwdHMgaW4gaG9jaGdlem9nZW5lbiBLaW5kZXJu +CiAgICAgICAgICAvLyAoei4gQi4gPHN2Zz48aW1nIG9uZXJyb3I94oCmPikuIHdhbGsobikgbWFj +aHQgZGVuIEluaGFsdCB6dWVyc3Qgc2F1YmVyLgogICAgICAgICAgaWYgKCFBTExPV0VEW24udGFn +TmFtZV0pIHsgd2FsayhuKTsgd2hpbGUgKG4uZmlyc3RDaGlsZCkgbm9kZS5pbnNlcnRCZWZvcmUo +bi5maXJzdENoaWxkLCBuKTsgbm9kZS5yZW1vdmVDaGlsZChuKTsgcmV0dXJuOyB9CiAgICAgICAg +ICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLmF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rp +b24gKGF0KSB7CiAgICAgICAgICAgIHZhciBubSA9IGF0Lm5hbWUudG9Mb3dlckNhc2UoKSwgdmFs +ID0gYXQudmFsdWU7CiAgICAgICAgICAgIGlmIChubS5zbGljZSgwLCAyKSA9PT0gIm9uIikgeyBu +LnJlbW92ZUF0dHJpYnV0ZShhdC5uYW1lKTsgcmV0dXJuOyB9ICAgLy8gRXZlbnQtSGFuZGxlciBy +YXVzCiAgICAgICAgICAgIGlmIChuLnRhZ05hbWUgPT09ICJBIiAmJiBubSA9PT0gImhyZWYiKSB7 +ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlaW5lIFVSTC1RdWVsbGUgKGNvcmUuanMpCiAg +ICAgICAgICAgICAgaWYgKFAuc2FmZVVybCh2YWwpKSB7IC8qIG9rICovIH0KICAgICAgICAgICAg +ICBlbHNlIGlmIChQLnNhZmVTaGFyZUhyZWYodmFsKSkgeyBuLnNldEF0dHJpYnV0ZSgidGFyZ2V0 +IiwgIl9ibGFuayIpOyBuLnNldEF0dHJpYnV0ZSgicmVsIiwgIm5vb3BlbmVyIik7IH0gIC8vIEJl +aG9lcmRlbi1TaGFyZS1WZXJ3ZWlzIChtaWdyaWVydCkgLT4gRXhwbG9yZXIvSUUKICAgICAgICAg +ICAgICBlbHNlIG4ucmVtb3ZlQXR0cmlidXRlKGF0Lm5hbWUpOwogICAgICAgICAgICB9CiAgICAg +ICAgICAgIGVsc2UgaWYgKG4udGFnTmFtZSA9PT0gIklNRyIgJiYgbm0gPT09ICJzcmMiKSB7IGlm +ICghU0FGRV9TUkMudGVzdCh2YWwpKSBuLnJlbW92ZUF0dHJpYnV0ZShhdC5uYW1lKTsgfQogICAg +ICAgICAgICBlbHNlIGlmIChuLnRhZ05hbWUgPT09ICJJTUciICYmIG5tID09PSAiYWx0IikgeyAv +KiBlcmxhdWJ0ICovIH0KICAgICAgICAgICAgZWxzZSBpZiAobi50YWdOYW1lID09PSAiRklHVVJF +IiAmJiBubSA9PT0gImRhdGEtc3JjIikgeyBpZiAoIS9eKGRva3VtZW50ZVwvfGh0dHBzPzp8XC9c +L3xcLlwuXC8pL2kudGVzdCh2YWwpIHx8ICEvXC5wZGYoJHxcPykvaS50ZXN0KHZhbCkpIG4ucmVt +b3ZlQXR0cmlidXRlKGF0Lm5hbWUpOyB9CiAgICAgICAgICAgIGVsc2UgaWYgKG5tID09PSAiY2xh +c3MiKSB7IHZhciBzYyA9IHNhZmVDbGFzcyh2YWwpOyBpZiAoc2MpIG4uc2V0QXR0cmlidXRlKCJj +bGFzcyIsIHNjKTsgZWxzZSBuLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTsgfQogICAgICAgICAg +ICBlbHNlIGlmIChubSA9PT0gInN0eWxlIikgeyB2YXIgc3MgPSBzYWZlU3R5bGUodmFsKTsgaWYg +KHNzKSBuLnNldEF0dHJpYnV0ZSgic3R5bGUiLCBzcyk7IGVsc2Ugbi5yZW1vdmVBdHRyaWJ1dGUo +InN0eWxlIik7IH0KICAgICAgICAgICAgZWxzZSBpZiAoKG5tID09PSAidGFyZ2V0IiB8fCBubSA9 +PT0gInJlbCIpICYmIG4udGFnTmFtZSA9PT0gIkEiKSB7IC8qIGVybGF1YnQgKi8gfQogICAgICAg +ICAgICBlbHNlIG4ucmVtb3ZlQXR0cmlidXRlKGF0Lm5hbWUpOwogICAgICAgICAgfSk7CiAgICAg +ICAgICBpZiAobi50YWdOYW1lID09PSAiQSIgJiYgbi5nZXRBdHRyaWJ1dGUoImhyZWYiKSkgewog +ICAgICAgICAgICBpZiAoL15wb3J0YWw6W1x3LV0rJC9pLnRlc3Qobi5nZXRBdHRyaWJ1dGUoImhy +ZWYiKSkpIHsKICAgICAgICAgICAgICAvLyBJbnRlcm5lciBMaW5rIC0+IHBlciBLbGljay1EZWxl +Z2F0aW9uIChQLmluaXRJbnRlcm5hbExpbmtzKSBuYXZpZ2llcmVuLCBOSUNIVCBfYmxhbmsuCiAg +ICAgICAgICAgICAgbi5yZW1vdmVBdHRyaWJ1dGUoInRhcmdldCIpOyBuLnNldEF0dHJpYnV0ZSgi +cmVsIiwgIm5vb3BlbmVyIik7IG4uY2xhc3NMaXN0LmFkZCgicG9ydGFsLWxpbmsiKTsKICAgICAg +ICAgICAgfSBlbHNlIHsgbi5zZXRBdHRyaWJ1dGUoInRhcmdldCIsICJfYmxhbmsiKTsgbi5zZXRB +dHRyaWJ1dGUoInJlbCIsICJub29wZW5lciIpOyB9CiAgICAgICAgICB9CiAgICAgICAgICB3YWxr +KG4pOwogICAgICAgIH0gZWxzZSBpZiAobi5ub2RlVHlwZSAhPT0gMykgeyBub2RlLnJlbW92ZUNo +aWxkKG4pOyB9ICAgLy8gS29tbWVudGFyZSBldGMuIHJhdXMKICAgICAgfSk7CiAgICB9KShib3gp +OwogICAgcmV0dXJuIGJveC5pbm5lckhUTUw7CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVmVybGF1ZiAoaW50ZXJu +LCBmdWVyIOKAnk5ldWVzICYgR2VhZW5kZXJ0ZXMiKSAqLwogIFAucmVtZW1iZXIgPSBmdW5jdGlv +biAoaXQpIHsKICAgIGlmICghaXQuYXJ0aWNsZSAmJiAhaXQuZm9sZGVyICYmICghaXQuaHJlZiB8 +fCAvXm1haWx0bzovaS50ZXN0KGl0LmhyZWYpKSkgcmV0dXJuOwogICAgdmFyIGsgPSBQLm5hdkl0 +ZW1LZXkoaXQpLCBsaXN0ID0gUC5yZWFkKFAuTFMuaGlzdCwgW10pOwogICAgbGlzdCA9IGxpc3Qu +ZmlsdGVyKGZ1bmN0aW9uIChmKSB7IHJldHVybiBQLm5hdkl0ZW1LZXkoZikgIT09IGs7IH0pOwog +ICAgbGlzdC51bnNoaWZ0KHNsaW1SZWYoaXQpKTsKICAgIFAud3JpdGUoUC5MUy5oaXN0LCBsaXN0 +LnNsaWNlKDAsIDIwKSk7ICAgLy8gaW50ZXJuIGZ1ZXIg4oCeU2VpdCBsZXR6dGVtIEJlc3VjaCIv +TmV1ZXMtTW9kYWw7IGtlaW4gc2ljaHRiYXJlciBWZXJsYXVmIG1laHIKICB9OwogIGZ1bmN0aW9u +IHNsaW1SZWYoaXQpIHsKICAgIC8vIFJlZmVyZW56IGF1ZiBOYXYtRWludHJhZyBzY2hsYW5rIGhh +bHRlbjsgQXJ0aWtlbCB3ZXJkZW4gcGVyIF9pZCByZWZlcmVuemllcnQgKGluIE5BViBnZXNwZWlj +aGVydCkKICAgIHZhciBvID0geyBsYWJlbDogaXQubGFiZWwsIGhyZWY6IGl0LmhyZWYsIHRhcmdl +dDogaXQudGFyZ2V0IH07CiAgICBpZiAoaXQuYXJ0aWNsZSkgeyBvLmFydGljbGUgPSB0cnVlOyBv +Ll9pZCA9IGl0Ll9pZDsgfQogICAgcmV0dXJuIG87CiAgfQogIC8qIExvZXN0IFJlZmVyZW56ZW4g +YXVmIGRlbiBrYW5vbmlzY2hlbiBLbm90ZW4gYXVmIChQaGFzZSA4LzEwKToKICAgICAtIFZlcmxh +dWYtQXJ0aWtlbCAoe2FydGljbGU6dHJ1ZSxfaWR9KSAtPiBlY2h0ZXIgTmF2LUtub3RlbgogICAg +IC0gQWxpYXMtS25vdGVuICh7cmVmOiI8aWQ+In0sIFBoYXNlIDEwKSAtPiBrYW5vbmlzY2hlciBL +bm90ZW47IFJlZi1MYWJlbCBoYXQgVm9ycmFuZwogICAgIFp5a2xlbi0vVGllZmVuLXNpY2hlciAo +bWF4LiA4IEF1ZmxvZXN1bmdlbikuICovCiAgUC5yZXNvbHZlUmVmID0gZnVuY3Rpb24gKHJlZikg +ewogICAgdmFyIHNlZW4gPSAwOwogICAgd2hpbGUgKHJlZiAmJiBzZWVuKysgPCA4KSB7CiAgICAg +IGlmIChyZWYucmVmKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxp +YXMtS25vdGVuIChNZWhyZmFjaC1FaW5iaW5kdW5nKQogICAgICAgIHZhciBjID0gUC5maW5kTmF2 +SXRlbUJ5SWQocmVmLnJlZik7IGlmICghYyB8fCBjID09PSByZWYpIGJyZWFrOwogICAgICAgIHZh +ciBsYmwgPSByZWYubGFiZWw7CiAgICAgICAgcmVmID0gbGJsID8gUC5tZXJnZUxhYmVsKGMsIGxi +bCkgOiBjOyBjb250aW51ZTsKICAgICAgfQogICAgICBpZiAocmVmLmFydGljbGUgPT09IHRydWUg +JiYgcmVmLl9pZCkgeyAgICAgICAgICAgIC8vIHNjaGxhbmtlIFZlcmxhdWYtUmVmZXJlbnoKICAg +ICAgICB2YXIgZiA9IFAuZmluZE5hdkl0ZW1CeUlkKHJlZi5faWQpOyBpZiAoZiAmJiBmICE9PSBy +ZWYpIHsgcmVmID0gZjsgY29udGludWU7IH0KICAgICAgfQogICAgICBicmVhazsKICAgIH0KICAg +IHJldHVybiByZWY7CiAgfTsKICAvLyBLYW5vbmlzY2hlbiBLbm90ZW4gbWl0IGFid2VpY2hlbmRl +bSBBbnplaWdlLUxhYmVsIHp1cnVlY2tnZWJlbiwgb2huZSBPcmlnaW5hbCB6dSBtdXRpZXJlbi4K +ICBQLm1lcmdlTGFiZWwgPSBmdW5jdGlvbiAoY2Fub24sIGxhYmVsKSB7CiAgICBpZiAoIWxhYmVs +IHx8IGNhbm9uLmxhYmVsID09PSBsYWJlbCkgcmV0dXJuIGNhbm9uOwogICAgdmFyIG8gPSB7fTsg +Zm9yICh2YXIgayBpbiBjYW5vbikgb1trXSA9IGNhbm9uW2tdOyBvLmxhYmVsID0gbGFiZWw7IHJl +dHVybiBvOwogIH07CiAgZnVuY3Rpb24gcmVzb2x2ZVJlZihyKSB7IHJldHVybiBQLnJlc29sdmVS +ZWYocik7IH0gICAvLyBsb2thbGVyIEFsaWFzIChCZXN0YW5kc2F1ZnJ1ZmUpCgogIC8qIC0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE5B +Vi1IZWxmZXIgKGbDvHIgQXJ0aWtlbC1Nb2R1bCkgKi8KICBQLmVhY2hOYXZJdGVtID0gZnVuY3Rp +b24gKGNiKSB7CiAgICBQLk5BVi5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7IChmdW5j +dGlvbiB3KGl0ZW1zLCBwYXJlbnQpIHsgKGl0ZW1zIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChp +dCkgeyBjYihpdCwgcGFyZW50LCBzKTsgaWYgKGl0LmNoaWxkcmVuKSB3KGl0LmNoaWxkcmVuLCBp +dCk7IH0pOyB9KShzLml0ZW1zLCBudWxsKTsgfSk7CiAgfTsKICBQLmZpbmROYXZJdGVtQnlJZCA9 +IGZ1bmN0aW9uIChpZCkgeyBpZiAoIWlkKSByZXR1cm4gbnVsbDsgdmFyIGhpdCA9IG51bGw7IFAu +ZWFjaE5hdkl0ZW0oZnVuY3Rpb24gKGl0KSB7IGlmIChpdC5faWQgPT09IGlkKSBoaXQgPSBpdDsg +fSk7IHJldHVybiBoaXQ7IH07CgogIC8qIFN0YWJpbGUgSURzIGZ1ZXIgSkVERU4gTmF2LUtub3Rl +biBzaWNoZXJzdGVsbGVuIChQaGFzZSA4KSDigJQgRnVuZGFtZW50IGZ1ZXIKICAgICBpbnRlcm5l +IExpbmtzIChwb3J0YWw6PGlkPikgdW5kIE1laHJmYWNoLUVpbmJpbmR1bmcuIElkZW1wb3RlbnQu +IEFydGlrZWwKICAgICBiZWhhbHRlbiBpaHIgdm9yaGFuZGVuZXMgYXJ0LeKApi9faWQuIFdpcmQg +ZWlubWFsIGJlaW0gSW5pdCBhdWZnZXJ1ZmVuOyBkaWUKICAgICBJRHMgd2VyZGVuIGJlaW0gbmFl +Y2hzdGVuIFZlcm9lZmZlbnRsaWNoZW4gaW4gZGF0YS1uYXYuanMgZmVzdGdlc2NocmllYmVuLiAq +LwogIFAubmF2RW5zdXJlSWRzID0gZnVuY3Rpb24gKCkgewogICAgdmFyIGNoYW5nZWQgPSBmYWxz +ZTsKICAgIFAuZWFjaE5hdkl0ZW0oZnVuY3Rpb24gKGl0KSB7IGlmICghaXQuX2lkICYmICFpdC5o +ZWFkaW5nKSB7IGl0Ll9pZCA9IFAudWlkKCJuIik7IGNoYW5nZWQgPSB0cnVlOyB9IH0pOwogICAg +cmV0dXJuIGNoYW5nZWQ7CiAgfTsKCiAgLyogS2xpY2stRGVsZWdhdGlvbiBmdWVyIGludGVybmUg +TGlua3MgKFBoYXNlIDkpOiA8YSBocmVmPSJwb3J0YWw6PGlkPiI+IHdpcmQKICAgICBOSUNIVCBh +bHMgVVJMIGdlb2VmZm5ldCwgc29uZGVybiBuYXZpZ2llcnQgaW0gUG9ydGFsLiBEZWNrdCBBcnRp +a2VsLUluaGFsdAogICAgIFVORCBGZWVkLUJvZGllcyBhYi4gSW0gRWRpdG9yIChjb250ZW50ZWRp +dGFibGUpIE5JQ0hUIGFiZmFuZ2VuLiAqLwogIFAuaW5pdEludGVybmFsTGlua3MgPSBmdW5jdGlv +biAoKSB7CiAgICBpZiAoUC5faW50TGlua3MpIHJldHVybjsgUC5faW50TGlua3MgPSB0cnVlOwog +ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoZSkgewogICAg +ICB2YXIgdCA9IGUudGFyZ2V0LCBhID0gdCAmJiB0LmNsb3Nlc3QgPyB0LmNsb3Nlc3QoJ2FbaHJl +Zl49InBvcnRhbDoiXScpIDogbnVsbDsKICAgICAgaWYgKCFhIHx8IGEuaXNDb250ZW50RWRpdGFi +bGUpIHJldHVybjsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB2YXIgaXQgPSBQLmZp +bmROYXZJdGVtQnlJZChhLmdldEF0dHJpYnV0ZSgiaHJlZiIpLnNsaWNlKDcpKTsKICAgICAgaWYg +KGl0KSBQLm5hdmlnYXRlKFAucmVzb2x2ZVJlZihpdCkpOwogICAgICBlbHNlIFAudG9hc3QoIlZl +cmtuw7xwZnRlcyBaaWVsIG5pY2h0IGdlZnVuZGVuIChldnRsLiBub2NoIG5pY2h0IHZlcsO2ZmZl +bnRsaWNodCkuIiwgdHJ1ZSk7CiAgICB9KTsKICB9OwoKICAvKiBBdXN3YWhsLURpYWxvZzogZWlu +ZW4gTmF2LUtub3RlbiBhbHMgaW50ZXJuZXMgTGluay1aaWVsIHdhZWhsZW4gKFBoYXNlIDkpLgog +ICAgIExpZWZlcnQgZGVtIENhbGxiYWNrIHsgX2lkLCBsYWJlbCB9LiBHZW51dHp0IHZvbSBBcnRp +a2VsLUVkaXRvci4gKi8KICBQLm9wZW5OYXZQaWNrZXIgPSBmdW5jdGlvbiAoY2IpIHsKICAgIHZh +ciBpdGVtcyA9IFtdOwogICAgUC5lYWNoTmF2SXRlbShmdW5jdGlvbiAoaXQpIHsgaWYgKCFpdC5o +ZWFkaW5nICYmICFpdC5yZWYgJiYgKGl0LmFydGljbGUgfHwgaXQuaHJlZiB8fCBpdC5mb2xkZXIp +KSBpdGVtcy5wdXNoKGl0KTsgfSk7CiAgICB2YXIgbGlzdEhvc3Q7CiAgICBmdW5jdGlvbiByZW5k +ZXIoZmlsdGVyKSB7CiAgICAgIGxpc3RIb3N0LmlubmVySFRNTCA9ICIiOwogICAgICB2YXIgbmYg +PSBQLmRlYWNjZW50KGZpbHRlciB8fCAiIiksIHNob3duID0gMDsKICAgICAgaXRlbXMuZm9yRWFj +aChmdW5jdGlvbiAoaXQpIHsKICAgICAgICB2YXIgbGFiZWwgPSBpdC5sYWJlbCB8fCAoaXQuYXJ0 +aWNsZSAmJiBpdC5hcnRpY2xlLnRpdGxlKSB8fCBpdC5ocmVmIHx8ICIiOwogICAgICAgIGlmIChu +ZiAmJiBQLmRlYWNjZW50KGxhYmVsKS5pbmRleE9mKG5mKSA8IDApIHJldHVybjsKICAgICAgICBp +ZiAoKytzaG93biA+IDIwMCkgcmV0dXJuOwogICAgICAgIHZhciBraW5kID0gaXQuYXJ0aWNsZSA/ +ICJBcnRpa2VsIiA6IGl0LmZvbGRlciA/ICJPcmRuZXIiIDogKGl0LnRhcmdldCA9PT0gIl9ibGFu +ayIgPyAiTGluayIgOiAiRG9rdW1lbnQiKTsKICAgICAgICB2YXIgcm93ID0gZWwoImJ1dHRvbiIs +IHsgdHlwZTogImJ1dHRvbiIsIGNsYXNzOiAibnAtcm93Iiwgb25jbGljazogZnVuY3Rpb24gKCkg +ewogICAgICAgICAgaWYgKCFpdC5faWQpIGl0Ll9pZCA9IFAudWlkKCJuIik7CiAgICAgICAgICBt +LmNsb3NlKCk7IGNiKHsgX2lkOiBpdC5faWQsIGxhYmVsOiBsYWJlbCB9KTsKICAgICAgICB9IH0p +OwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJucC1pYyIsIGh0 +bWw6IGljKGl0LmFydGljbGUgPyAiYXJ0aWNsZSIgOiAoaXQuZm9sZGVyID8gImRvYyIgOiAoaXQu +dGFyZ2V0ID09PSAiX2JsYW5rIiA/ICJleHQiIDogImRvYyIpKSkgfSkpOwogICAgICAgIHJvdy5h +cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJucC1sYmwiLCB0ZXh0OiBsYWJlbCB9KSk7 +CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogIm5wLWtpbmQgbW9u +byIsIHRleHQ6IGtpbmQgfSkpOwogICAgICAgIGxpc3RIb3N0LmFwcGVuZENoaWxkKHJvdyk7CiAg +ICAgIH0pOwogICAgICBpZiAoIXNob3duKSBsaXN0SG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2Iiwg +eyBjbGFzczogIm11dGVkIiwgdGV4dDogIktlaW4gVHJlZmZlci4iIH0pKTsKICAgIH0KICAgIHZh +ciBtID0gUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiSW50ZXJuZW4gTGluayBlaW5mw7xnZW4iLCBp +Y29uOiAibGluayIsIHNpemU6ICJtZCIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7CiAgICAg +ICAgdmFyIHEgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xhc3M6ICJucC1zZWFyY2gi +LCBwbGFjZWhvbGRlcjogIlppZWwgc3VjaGVuIOKApiIsICJhcmlhLWxhYmVsIjogIlN1Y2hlbiIs +CiAgICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IHJlbmRlcih0aGlzLnZhbHVlKTsgfSB9 +KTsKICAgICAgICBiLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiZmllbGQiIH0sIFtx +XSkpOwogICAgICAgIGxpc3RIb3N0ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJucC1saXN0IiB9KTsK +ICAgICAgICBiLmFwcGVuZENoaWxkKGxpc3RIb3N0KTsKICAgICAgICByZW5kZXIoIiIpOwogICAg +ICB9LAogICAgICBhY3Rpb25zOiBbeyBsYWJlbDogIkFiYnJlY2hlbiIsIGtpbmQ6ICJnaG9zdCIg +fV0KICAgIH0pOwogIH07CgogIC8qIEdldGVpbHRlIEJhdW0tTXV0YXRpb25lbiAoTmF2LUVkaXRv +ciwgUGhhc2UgNykg4oCUIHRpZWZlbnVuYWJoYWVuZ2lnLiAqLwogIC8vIEZpbmRldCBlaW5lbiBF +aW50cmFnIGltIEJhdW06IHsgYXJyLCBpZHgsIHBhcmVudCwgc2VjdGlvbiB9LgogIFAubmF2Rmlu +ZCA9IGZ1bmN0aW9uIChpdGVtKSB7CiAgICB2YXIgcmVzID0gbnVsbDsKICAgIFAuTkFWLnNlY3Rp +b25zLmZvckVhY2goZnVuY3Rpb24gKHMpIHsKICAgICAgKGZ1bmN0aW9uIHcoYXJyLCBwYXJlbnQp +IHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGggJiYgIXJlczsgaSsrKSB7 +CiAgICAgICAgICBpZiAoYXJyW2ldID09PSBpdGVtKSB7IHJlcyA9IHsgYXJyOiBhcnIsIGlkeDog +aSwgcGFyZW50OiBwYXJlbnQsIHNlY3Rpb246IHMgfTsgcmV0dXJuOyB9CiAgICAgICAgICBpZiAo +YXJyW2ldLmNoaWxkcmVuKSB3KGFycltpXS5jaGlsZHJlbiwgYXJyW2ldKTsKICAgICAgICB9CiAg +ICAgIH0pKHMuaXRlbXMgfHwgW10sIG51bGwpOwogICAgfSk7CiAgICByZXR1cm4gcmVzOwogIH07 +CiAgUC5uYXZDb250YWluZXIgPSBmdW5jdGlvbiAoaXRlbSkgeyB2YXIgZiA9IFAubmF2RmluZChp +dGVtKTsgcmV0dXJuIGYgPyBmLmFyciA6IG51bGw7IH07CiAgUC5uYXZFbnN1cmVDaGlsZHJlbiA9 +IGZ1bmN0aW9uIChpdCkgeyBpZiAoIWl0LmNoaWxkcmVuKSBpdC5jaGlsZHJlbiA9IFtdOyByZXR1 +cm4gaXQuY2hpbGRyZW47IH07CiAgUC5uYXZSZW1vdmVGcm9tID0gZnVuY3Rpb24gKGl0ZW0pIHsK +ICAgIHZhciBmID0gUC5uYXZGaW5kKGl0ZW0pOyBpZiAoIWYpIHJldHVybjsKICAgIGYuYXJyLnNw +bGljZShmLmlkeCwgMSk7CiAgICBpZiAoZi5wYXJlbnQgJiYgZi5wYXJlbnQuY2hpbGRyZW4gJiYg +IWYucGFyZW50LmNoaWxkcmVuLmxlbmd0aCkgZGVsZXRlIGYucGFyZW50LmNoaWxkcmVuOwogIH07 +CiAgLy8gRWludHJhZyB1bSBlaW5lIFBvc2l0aW9uIGlubmVyaGFsYiBzZWluZXIgR2VzY2h3aXN0 +ZXIgdmVyc2NoaWViZW4gKC0xIGhvY2gsICsxIHJ1bnRlcikuCiAgUC5uYXZNb3ZlID0gZnVuY3Rp +b24gKGl0ZW0sIGRpcikgewogICAgdmFyIGYgPSBQLm5hdkZpbmQoaXRlbSk7IGlmICghZikgcmV0 +dXJuIGZhbHNlOwogICAgdmFyIGogPSBmLmlkeCArIGRpcjsgaWYgKGogPCAwIHx8IGogPj0gZi5h +cnIubGVuZ3RoKSByZXR1cm4gZmFsc2U7CiAgICBmLmFyci5zcGxpY2UoZi5pZHgsIDEpOyBmLmFy +ci5zcGxpY2UoaiwgMCwgaXRlbSk7IHJldHVybiB0cnVlOwogIH07CiAgLy8gSXN0IGEgZWluIFZv +cmZhaHIgdm9uIGI/ICh2ZXJoaW5kZXJ0IERyb3AgaW4gZGVuIGVpZ2VuZW4gVGVpbGJhdW0pCiAg +UC5uYXZJc0FuY2VzdG9yID0gZnVuY3Rpb24gKGEsIGIpIHsKICAgIGlmICghYSB8fCAhYS5jaGls +ZHJlbikgcmV0dXJuIGZhbHNlOwogICAgdmFyIGZvdW5kID0gZmFsc2U7CiAgICAoZnVuY3Rpb24g +dyhpdGVtcykgeyBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdCkgeyBpZiAoaXQgPT09IGIpIGZv +dW5kID0gdHJ1ZTsgZWxzZSBpZiAoaXQuY2hpbGRyZW4pIHcoaXQuY2hpbGRyZW4pOyB9KTsgfSko +YS5jaGlsZHJlbik7CiAgICByZXR1cm4gZm91bmQ7CiAgfTsKCiAgLyogLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2lkZWJhci1SZW5k +ZXJpbmcgKi8KICBmdW5jdGlvbiBsaW5rRWwoaXQpIHsKICAgIHZhciBkaXNwID0gUC5yZXNvbHZl +UmVmKGl0KSB8fCBpdDsgICAgICAvLyBBbGlhcy9SZWZlcmVueiBhdWYga2Fub25pc2NoZXMgWmll +bCBhdWZsb2VzZW4gKFBoYXNlIDEwKQogICAgdmFyIGlzQWxpYXMgPSAhIWl0LnJlZjsKICAgIHZh +ciBsYWJlbCA9IGl0LmxhYmVsIHx8IGRpc3AubGFiZWwgfHwgIiI7CiAgICB2YXIgYSA9IGVsKCJh +IiwgeyBocmVmOiBkaXNwLmhyZWYgfHwgIiMiLCAiZGF0YS1rZXkiOiBQLm5hdkl0ZW1LZXkoZGlz +cCksCiAgICAgIGNsYXNzOiBkaXNwLmJyb2tlbiA/ICJpcy1icm9rZW4iIDogIiIsIHRpdGxlOiBp +dC5ub3RlIHx8IGRpc3Aubm90ZSB8fCAiIiwKICAgICAgb25jbGljazogZnVuY3Rpb24gKGUpIHsg +ZS5wcmV2ZW50RGVmYXVsdCgpOyBQLm5hdmlnYXRlKGl0KTsgfSB9KTsKICAgIHZhciBfdiA9IGl0 +LnZhcmlhbnQgfHwgZGlzcC52YXJpYW50OyBpZiAoX3YpIGEuY2xhc3NMaXN0LmFkZCgibmF2LSIg +KyBfdik7ICAgLy8gZmFyYmxpY2hlciBBa3plbnQgKHouQi4gS2VubnfDtnJ0ZXIpCiAgICAvLyBJ +Y29uIGRhdGVuZ2V0cmllYmVuOiBlaWdlbmVzIEtub3Rlbi1GZWxkICJpY29uIiAoYmVuYW5udGVy +IE5hbWUgYXVzIFAuaWMpIHNjaGxhZWd0IGRlbgogICAgLy8gVHlwLVN0YW5kYXJkOyB1bmJla2Fu +bnRlL2xlZXJlIE5hbWVuIGZhbGxlbiBzYXViZXIgYXVmIGRlbiBUeXAgenVydWVjay4KICAgIHZh +ciBfaWNvID0gZGlzcC5pY29uIHx8IGl0Lmljb24gfHwgIiI7CiAgICB2YXIgX2ljTmFtZSA9IChf +aWNvICYmIGljKF9pY28pKSA/IF9pY28KICAgICAgOiAoZGlzcC5hcnRpY2xlID8gImFydGljbGUi +IDogZGlzcC5mb2xkZXIgPyAiZG9jIiA6IGRpc3AuaHJlZiA/IChkaXNwLnRhcmdldCA9PT0gIl9i +bGFuayIgPyAiZXh0IiA6ICJkb2MiKSA6ICIiKTsKICAgIGlmIChfaWNOYW1lKSBhLmFwcGVuZENo +aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImxpLWljIiwgaHRtbDogaWMoX2ljTmFtZSkgfSkpOwog +ICAgYS5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJsYmwiLCB0ZXh0OiBsYWJlbCB9 +KSk7CiAgICBpZiAoaXNBbGlhcykgYS5hcHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJi +YWRnZSBhbGlhcyIsIHRpdGxlOiAiVmVyd2VpcyBhdWYgZWluZW4gYW5kZXJlbiBFaW50cmFnIiwg +dGV4dDogIuKGqiIgfSkpOwogICAgaWYgKGRpc3AudGFyZ2V0ID09PSAiX2JsYW5rIikgYS5hcHBl +bmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJiYWRnZSBleHQiLCB0ZXh0OiAi4oaXIiB9KSk7 +CiAgICBpZiAoZGlzcC5icm9rZW4pIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAi +YmFkZ2UgYnJva2VuIiwgdGV4dDogImZlaGx0IiB9KSk7CiAgICBpZiAoaXQuYmFkZ2UpIGEuYXBw +ZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAiYmFkZ2UgIiArIGl0LmJhZGdlLCB0ZXh0OiBp +dC5iYWRnZSA9PT0gInJlZCIgPyAiISIgOiBpdC5iYWRnZSB9KSk7CiAgICBpZiAoZGlzcC5hcnRp +Y2xlICYmICFpc0FsaWFzKSB7ICAgICAgICAgIC8vIG51ciBhbSBrYW5vbmlzY2hlbiBBcnRpa2Vs +IGJlYXJiZWl0ZW4KICAgICAgYS5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogInN0 +YXIgYXJ0LWVkaXQgZWRpdC1vbmx5IiwgdGl0bGU6ICJBcnRpa2VsIGJlYXJiZWl0ZW4iLAogICAg +ICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGUucHJldmVudERlZmF1bHQoKTsgZS5zdG9wUHJv +cGFnYXRpb24oKTsgUC5vcGVuQXJ0aWNsZURsZyhkaXNwKTsgfSwgaHRtbDogaWMoImVkaXQiKSB9 +KSk7CiAgICB9CiAgICAvLyBEb2t1bWVudC0vTGluay1Lbm90ZW4gKGtlaW4gQXJ0aWtlbCwga2Vp +biBPcmRuZXIsIGtlaW4gX2JsYW5rLUV4dGVybmxpbmssIGtlaW4gQWxpYXMpOgogICAgLy8gU3Rp +ZnQgd2FuZGVsdCBkZW4gS25vdGVuIGluLXBsYWNlIGluIGVpbmVuIGJlYXJiZWl0YmFyZW4gQXJ0 +aWtlbCB1bSAoaHJlZiAtPiBhcnRpY2xlKS4KICAgIGVsc2UgaWYgKCFpc0FsaWFzICYmIGRpc3Au +aHJlZiAmJiAhZGlzcC5mb2xkZXIgJiYgZGlzcC50YXJnZXQgIT09ICJfYmxhbmsiICYmIFAub3Bl +bk1pZ3JhdGlvbkVkaXRvcikgewogICAgICBhLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNs +YXNzOiAic3RhciBhcnQtZWRpdCBlZGl0LW9ubHkiLCB0aXRsZTogIkluIGJlYXJiZWl0YmFyZW4g +QXJ0aWtlbCB1bXdhbmRlbG4iLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGUucHJl +dmVudERlZmF1bHQoKTsgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgIGlmICghUC5saXZl +KSB7IFAudG9hc3QoIlVtd2FuZGVsbiBudXIgaW0gUGZsZWdlLU1vZHVzIChsb2thbGVyIEhlbGZl +cikuIiwgdHJ1ZSk7IHJldHVybjsgfQogICAgICAgICAgUC5vcGVuTWlncmF0aW9uRWRpdG9yKGl0 +LCB7IHRpdGxlOiBpdC5sYWJlbCB8fCBkaXNwLmxhYmVsIHx8ICIiLCBkYXRlOiAiIiwgYXV0aG9y +OiAiIiwgaHRtbDogIiIgfSk7CiAgICAgICAgfSwgaHRtbDogaWMoImVkaXQiKSB9KSk7CiAgICB9 +CiAgICAvLyBPcmRuZXItL0xpbmstS25vdGVuOiBCZXplaWNobnVuZy9QZmFkL0ljb24gZGlyZWt0 +IGJlYXJiZWl0ZW4gKFJlZGFrdGV1cikuCiAgICBpZiAoIWlzQWxpYXMgJiYgKGRpc3AuZm9sZGVy +IHx8IGRpc3AuaHJlZikgJiYgUC5lZGl0Tm9kZURsZykgewogICAgICBhLmFwcGVuZENoaWxkKGVs +KCJidXR0b24iLCB7IGNsYXNzOiAic3RhciBhcnQtZWRpdCBlZGl0LW9ubHkiLCB0aXRsZTogIkJl +emVpY2hudW5nIC8gUGZhZCAvIEljb24gYmVhcmJlaXRlbiIsCiAgICAgICAgb25jbGljazogZnVu +Y3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBlLnN0b3BQcm9wYWdhdGlvbigpOyBQLmVk +aXROb2RlRGxnKGl0LCBmdW5jdGlvbiAoKSB7IGlmIChQLnJlbmRlclNpZGViYXIpIFAucmVuZGVy +U2lkZWJhcigpOyB9KTsgfSwgaHRtbDogaWMoImxpbmsiKSB9KSk7CiAgICB9CiAgICByZXR1cm4g +YTsKICB9CiAgZnVuY3Rpb24gZGlzY2xvc3VyZShpdCwgZmlsbCkgewogICAgdmFyIGJ0biA9IGVs +KCJidXR0b24iLCB7IGNsYXNzOiAic3ViLXRvZ2dsZSIsICJhcmlhLWV4cGFuZGVkIjogImZhbHNl +IiwKICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyB2YXIgbyA9IGJ0bi5nZXRBdHRyaWJ1dGUo +ImFyaWEtZXhwYW5kZWQiKSA9PT0gInRydWUiOyBidG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFu +ZGVkIiwgbyA/ICJmYWxzZSIgOiAidHJ1ZSIpOyBwYW5lbC5oaWRkZW4gPSBvOyB9LAogICAgICBo +dG1sOiAnPHNwYW4gY2xhc3M9ImxibCI+JyArIGVzY2FwZUh0bWwoaXQubGFiZWwpICsgJzwvc3Bh +bj48c3BhbiBjbGFzcz0iY2hldiI+JyArIGljKCJjaGV2IikgKyAnPC9zcGFuPicgfSk7CiAgICB2 +YXIgcGFuZWwgPSBlbCgidWwiLCB7IGNsYXNzOiAic2lkZS1saXN0IHN1YiIsIGhpZGRlbjogImhp +ZGRlbiIgfSk7CiAgICBmaWxsKGl0LmNoaWxkcmVuIHx8IFtdLCBwYW5lbCk7CiAgICByZXR1cm4g +ZWwoImxpIiwgbnVsbCwgW2J0biwgcGFuZWxdKTsKICB9CiAgZnVuY3Rpb24gZmlsbExpc3QoaXRl +bXMsIHVsKSB7CiAgICAoaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7CiAgICAg +IGlmIChpdC5oZWFkaW5nKSB7IHVsLmFwcGVuZENoaWxkKGVsKCJsaSIsIHsgY2xhc3M6ICJncnAt +aGVhZCIsIHRleHQ6IGl0LmxhYmVsIH0pKTsgcmV0dXJuOyB9CiAgICAgIGlmIChpdC5jaGlsZHJl +bikgdWwuYXBwZW5kQ2hpbGQoZGlzY2xvc3VyZShpdCwgZmlsbExpc3QpKTsKICAgICAgZWxzZSB1 +bC5hcHBlbmRDaGlsZChlbCgibGkiLCBudWxsLCBbbGlua0VsKGl0KV0pKTsKICAgIH0pOwogIH0K +ICBmdW5jdGlvbiBzaWRlR3JvdXAoaG9zdCwgdGl0bGUsIGljb25OYW1lLCBvcGVuLCBmaWxsLCBj +b2xvcikgewogICAgdmFyIGJ0biA9IGVsKCJidXR0b24iLCB7IGNsYXNzOiAiZ3JwLXRvZ2dsZSIs +ICJhcmlhLWV4cGFuZGVkIjogb3BlbiA/ICJ0cnVlIiA6ICJmYWxzZSIsCiAgICAgIG9uY2xpY2s6 +IGZ1bmN0aW9uICgpIHsgdmFyIG8gPSBidG4uZ2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIikg +PT09ICJ0cnVlIjsgYnRuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIG8gPyAiZmFsc2Ui +IDogInRydWUiKTsgbGlzdC5oaWRkZW4gPSBvOyB9LAogICAgICBodG1sOiAoaWNvbk5hbWUgPyBp +YyhpY29uTmFtZSkgOiAiIikgKyAiPHNwYW4+IiArIGVzY2FwZUh0bWwodGl0bGUpICsgJzwvc3Bh +bj48c3BhbiBjbGFzcz0iY2hldiI+JyArIGljKCJjaGV2IikgKyAiPC9zcGFuPiIgfSk7CiAgICB2 +YXIgbGlzdCA9IGVsKCJ1bCIsIHsgY2xhc3M6ICJzaWRlLWxpc3QiIH0pOwogICAgaWYgKCFvcGVu +KSBsaXN0LmhpZGRlbiA9IHRydWU7CiAgICBmaWxsKGxpc3QpOwogICAgdmFyIGdycCA9IGVsKCJk +aXYiLCB7IGNsYXNzOiAic2lkZS1ncm91cCIgKyAoY29sb3IgPyAiIGdycC1jb2xvcmVkIiA6ICIi +KSB9LCBbYnRuLCBsaXN0XSk7CiAgICBpZiAoY29sb3IpIGdycC5zdHlsZS5zZXRQcm9wZXJ0eSgi +LS1ncnAtY29sb3IiLCBjb2xvcik7ICAgLy8gZGF0ZW5nZXRyaWViZW5lIEJlcmVpY2hzZmFyYmUK +ICAgIGhvc3QuYXBwZW5kQ2hpbGQoZ3JwKTsKICAgIHJldHVybiBsaXN0OwogIH0KICBQLnJlbmRl +clNpZGViYXIgPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaG9zdCA9ICQoIiNzaWRlYmFyIik7IGhv +c3QuaW5uZXJIVE1MID0gIiI7CiAgICAvLyDigJ5OZXVlcyAmIEdlw6RuZGVydGVzIiDigJQgb2Vm +Zm5ldCBkYXMgenVzYW1tZW5nZWZ1ZWhydGUgTW9kYWwgKGVyc2V0enQgZGVuIGZydWVoZXJlbiBW +ZXJsYXVmKS4KICAgIHZhciBud0J0biA9IGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBj +bGFzczogImdycC10b2dnbGUiLCB0aXRsZTogUC50KCJ3aGF0c25ldy50aXRsZSIpLAogICAgICBv +bmNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChQLm9wZW5XaGF0c05ldykgUC5vcGVuV2hhdHNOZXco +KTsgfSwKICAgICAgaHRtbDogaWMoImNsb2NrIikgKyAiPHNwYW4+IiArIGVzY2FwZUh0bWwoUC50 +KCJ3aGF0c25ldy5uYXYiKSkgKyAiPC9zcGFuPiIgfSk7CiAgICBob3N0LmFwcGVuZENoaWxkKGVs +KCJkaXYiLCB7IGNsYXNzOiAic2lkZS1ncm91cCIgfSwgW253QnRuXSkpOwogICAgUC5OQVYuc2Vj +dGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChzKSB7IHJldHVybiBzLnBsYWNlbWVudCA9PT0gInNpZGVi +YXIiIHx8IHMucGxhY2VtZW50ID09PSAiYm90aCI7IH0pCiAgICAgIC5mb3JFYWNoKGZ1bmN0aW9u +IChzKSB7IHNpZGVHcm91cChob3N0LCBzLnRpdGxlLCBudWxsLCB0cnVlLCBmdW5jdGlvbiAodWwp +IHsgZmlsbExpc3Qocy5pdGVtcywgdWwpOyB9LCBzLmNvbG9yKTsgfSk7CiAgICBQLm1hcmtDdXJy +ZW50KFAuY3VycmVudEhyZWYpOwogIH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFR5cC1SZWdpc3RyaWVydW5nIChQaGFz +ZSAzKQogICAgIERva3VtZW50ZSArIEFydGlrZWwgYXVzIGRlbSBOYXZpZ2F0aW9uc2JhdW0gZnVl +ciBTdWNoZSAmIEEtWi4gKi8KICBQLnJlZ2lzdGVyVHlwZSh7CiAgICBrZXk6ICJuYXYiLCBsYWJl +bDogIkRva3VtZW50L0FydGlrZWwiLCBpY29uOiAiZG9jIiwKICAgIGJ1aWxkSW5kZXg6IGZ1bmN0 +aW9uIChwdXNoKSB7CiAgICAgIFAuTkFWLnNlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKHMpIHsg +d2FsayhzLml0ZW1zLCBzLnRpdGxlKTsgfSk7CiAgICAgIGZ1bmN0aW9uIHdhbGsoaXRlbXMsIHBh +dGgpIHsKICAgICAgICAoaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0KSB7CiAgICAg +ICAgICBpZiAoaXQuaGVhZGluZykgcmV0dXJuOwogICAgICAgICAgaWYgKGl0LmNoaWxkcmVuKSB3 +YWxrKGl0LmNoaWxkcmVuLCBwYXRoICsgIiDigLogIiArIGl0LmxhYmVsKTsKICAgICAgICAgIGlm +IChpdC5ocmVmIHx8IGl0LmFydGljbGUgfHwgaXQuZm9sZGVyKSBwdXNoKHsga2luZDogaXQuYXJ0 +aWNsZSA/ICJBcnRpa2VsIiA6IGl0LmZvbGRlciA/ICJPcmRuZXIiIDogIkRva3VtZW50IiwKICAg +ICAgICAgICAgaWNvbjogaXQuYXJ0aWNsZSA/ICJhcnRpY2xlIiA6IChpdC50YXJnZXQgPT09ICJf +YmxhbmsiID8gImV4dCIgOiAiZG9jIiksCiAgICAgICAgICAgIGl0OiBpdCwgbGFiZWw6IGl0Lmxh +YmVsLCBwYXRoOiBwYXRoLCBoYXk6IFAuZGVhY2NlbnQoaXQubGFiZWwgKyAiICIgKyBwYXRoICsg +IiAiICsgKGl0LmtleXdvcmRzIHx8ICIiKSkgfSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0K +ICB9KTsKCn0pKHdpbmRvdy5QKTsK +### FILE: assets/js/features/panels-edit.js | 6802 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvcGFuZWxzLWVkaXQu +anMgIChQaGFzZSAxMSkKICAgUGZsZWdlLVVJIGZ1ZXIgZGllIFNjaG5lbGx6dWdyaWZmZSAoUE9S +VEFMX1BBTkVMUyk6IFBhbmVscyBhbmxlZ2VuLAogICB1bWJlbmVubmVuLCB1bXNvcnRpZXJlbiwg +bG9lc2NoZW47IExpbmtzIGplIFBhbmVsIGFubGVnZW4gKGV4dGVybiBwZXIKICAgVVJMIE9ERVIg +aW50ZXJuIGFscyBWZXJ3ZWlzIGF1ZiBQb3J0YWwtSW5oYWx0IHZpYSBOYXYtUGlja2VyKSwgYmVh +cmJlaXRlbiwKICAgdW1zb3J0aWVyZW4sIGxvZXNjaGVuLiBMb2VzdCBkaWUgcHJvbXB0KCktQXVm +cnVmZSBpbiBwYW5lbHMuanMgYWIuCiAgIE51dHp0IGRpZSBlaW5oZWl0bGljaGUgTW9kYWwtS29t +cG9uZW50ZS4gU09TLVBhbmVscyBiZWhhbHRlbiBpaHJlbiBUeXAKICAgdW5kIFByaW1hZXItTGlu +azsgbmV1ZSBQYW5lbHMgc2luZCBRdWlja2xpbmstUGFuZWxzICh0eXBlICJxbCIpLgogICA9PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBlbCA9IFAu +ZWwsIGljID0gUC5pYzsKCiAgZnVuY3Rpb24gbW92ZShhcnIsIGksIGRpcikgeyB2YXIgaiA9IGkg +KyBkaXI7IGlmIChqIDwgMCB8fCBqID49IGFyci5sZW5ndGgpIHJldHVybiBmYWxzZTsgdmFyIHgg +PSBhcnIuc3BsaWNlKGksIDEpWzBdOyBhcnIuc3BsaWNlKGosIDAsIHgpOyByZXR1cm4gdHJ1ZTsg +fQoKICBQLm9wZW5QYW5lbEVkaXRvciA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICghUC5saXZlKSB7 +IFAudG9hc3QoIkJlYXJiZWl0ZW4gbnVyIGltIFBmbGVnZS1Nb2R1cy4iKTsgcmV0dXJuOyB9CiAg +ICB2YXIgVyA9IFAuY2xvbmUoUC5jb250ZW50LnBhbmVscyB8fCBbXSk7CiAgICB2YXIgaG9zdCA9 +IG51bGw7CiAgICBmdW5jdGlvbiByZXJlbmRlcigpIHsgaWYgKGhvc3QpIHsgaG9zdC5pbm5lckhU +TUwgPSAiIjsgYnVpbGQoaG9zdCk7IH0gfQoKICAgIGZ1bmN0aW9uIGxpbmtSb3cocGFuZWwsIGxp +bmssIGxpKSB7CiAgICAgIHZhciBsYWJlbCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBj +bGFzczogInBlLWxsYWJlbCIsIHZhbHVlOiBsaW5rLmxhYmVsIHx8ICIiLCBwbGFjZWhvbGRlcjog +IkJlemVpY2hudW5nIiwKICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IGxpbmsubGFiZWwg +PSB0aGlzLnZhbHVlOyB9IH0pOwogICAgICB2YXIgdGFyZ2V0OwogICAgICBpZiAobGluay5yZWYp +IHsKICAgICAgICB2YXIgY2Fub24gPSBQLmZpbmROYXZJdGVtQnlJZChsaW5rLnJlZik7CiAgICAg +ICAgdGFyZ2V0ID0gZWwoInNwYW4iLCB7IGNsYXNzOiAicGUtbHRhcmdldCBwZS1pbnRlcm4iLCB0 +aXRsZTogIkludGVybmVyIFZlcndlaXMiLAogICAgICAgICAgdGV4dDogIuKGqiAiICsgKGNhbm9u +ID8gKGNhbm9uLmxhYmVsIHx8IChjYW5vbi5hcnRpY2xlICYmIGNhbm9uLmFydGljbGUudGl0bGUp +IHx8ICJQb3J0YWwtSW5oYWx0IikgOiAiWmllbCBmZWhsdCIpIH0pOwogICAgICB9IGVsc2Ugewog +ICAgICAgIHRhcmdldCA9IGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczogInBlLWxo +cmVmIG1vbm8iLCB2YWx1ZTogbGluay5ocmVmIHx8ICIiLCBwbGFjZWhvbGRlcjogImh0dHBzOi8v +4oCmIMK3IGRva3VtZW50ZS/igKYgwrcgXFxcXHNoYXJlXFzigKZcXGRhdGVpLmV4ZSIsCiAgICAg +ICAgICBvbmlucHV0OiBmdW5jdGlvbiAoKSB7IGxpbmsuaHJlZiA9IHRoaXMudmFsdWU7IH0gfSk7 +ICAgLy8gWmllbCBmcmVpOyBPZWZmbmVuLU1vZHVzIHNlcGFyYXQKICAgICAgfQogICAgICAvLyBP +ZWZmbmVuIGluOiBNaXR0ZSAoY29udGVudCkgLyBuZXVlciBUYWIgKF9ibGFuaykgLyBNb2RhbC1G +ZW5zdGVyIChtb2RhbCkKICAgICAgdmFyIG9wZW5TZWwgPSBlbCgic2VsZWN0IiwgeyBjbGFzczog +InBlLW9wZW4iLCB0aXRsZTogIldvIMO2ZmZuZXQgZGVyIExpbms/IiwKICAgICAgICBvbmNoYW5n +ZTogZnVuY3Rpb24gKCkgeyBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9PSAiY29udGVu +dCIpIGxpbmsudGFyZ2V0ID0gdGhpcy52YWx1ZTsgZWxzZSB7IGxpbmsudGFyZ2V0ID0gImNvbnRl +bnQiOyB9IH0gfSk7CiAgICAgIFtbImNvbnRlbnQiLCAiTWl0dGUiXSwgWyJfYmxhbmsiLCAiTmV1 +ZXIgVGFiIl0sIFsibW9kYWwiLCAiTW9kYWwiXV0uZm9yRWFjaChmdW5jdGlvbiAobykgewogICAg +ICAgIG9wZW5TZWwuYXBwZW5kQ2hpbGQoZWwoIm9wdGlvbiIsIHsgdmFsdWU6IG9bMF0sIHRleHQ6 +IG9bMV0sIHNlbGVjdGVkOiAoKGxpbmsudGFyZ2V0IHx8ICJjb250ZW50IikgPT09IG9bMF0pID8g +InNlbGVjdGVkIiA6IG51bGwgfSkpOwogICAgICB9KTsKICAgICAgdmFyIHZhcmlhbnQgPSBlbCgi +c2VsZWN0IiwgeyBjbGFzczogInBlLXZhcmlhbnQiLCB0aXRsZTogIkRhcnN0ZWxsdW5nIGRlcyBC +dXR0b25zIiwKICAgICAgICBvbmNoYW5nZTogZnVuY3Rpb24gKCkgeyBpZiAodGhpcy52YWx1ZSkg +bGluay52YXJpYW50ID0gdGhpcy52YWx1ZTsgZWxzZSBkZWxldGUgbGluay52YXJpYW50OyB9IH0p +OwogICAgICBbWyIiLCAiU3RhbmRhcmQiXSwgWyJwcmltYXJ5IiwgIkhlcnZvcmdlaG9iZW4iXSwg +WyJkYW5nZXIiLCAiR2VmYWhyIl1dLmZvckVhY2goZnVuY3Rpb24gKG8pIHsKICAgICAgICB2YXJp +YW50LmFwcGVuZENoaWxkKGVsKCJvcHRpb24iLCB7IHZhbHVlOiBvWzBdLCB0ZXh0OiBvWzFdLCBz +ZWxlY3RlZDogKGxpbmsudmFyaWFudCB8fCAiIikgPT09IG9bMF0gPyAic2VsZWN0ZWQiIDogbnVs +bCB9KSk7CiAgICAgIH0pOwogICAgICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJl +LWFjdHMiIH0pOwogICAgICBhY3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAi +bnYtbWluaSIsIHRpdGxlOiAiaG9jaCIsIHRleHQ6ICLilrIiLCBvbmNsaWNrOiBmdW5jdGlvbiAo +KSB7IGlmIChtb3ZlKHBhbmVsLmxpbmtzLCBsaSwgLTEpKSByZXJlbmRlcigpOyB9IH0pKTsKICAg +ICAgYWN0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmkiLCB0aXRs +ZTogInJ1bnRlciIsIHRleHQ6ICLilrwiLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IGlmIChtb3Zl +KHBhbmVsLmxpbmtzLCBsaSwgMSkpIHJlcmVuZGVyKCk7IH0gfSkpOwogICAgICBhY3RzLmFwcGVu +ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAiTGluayBsw7Zz +Y2hlbiIsIGh0bWw6IGljKCJ0cmFzaCIpLCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHBhbmVsLmxp +bmtzLnNwbGljZShsaSwgMSk7IHJlcmVuZGVyKCk7IH0gfSkpOwogICAgICByZXR1cm4gZWwoImRp +diIsIHsgY2xhc3M6ICJwZS1saW5rIiB9LCBsaW5rLnJlZiA/IFtsYWJlbCwgdGFyZ2V0LCB2YXJp +YW50LCBhY3RzXSA6IFtsYWJlbCwgdGFyZ2V0LCBvcGVuU2VsLCB2YXJpYW50LCBhY3RzXSk7CiAg +ICB9CgogICAgZnVuY3Rpb24gcGFuZWxFbChwYW5lbCwgcGkpIHsKICAgICAgdmFyIGhlYWQgPSBl +bCgiZGl2IiwgeyBjbGFzczogInBlLXBhbmVsLWhlYWQiIH0pOwogICAgICBoZWFkLmFwcGVuZENo +aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogInBlLXB0eXBlIiwgdGV4dDogcGFuZWwudHlwZSA9PT0g +InNvcyIgPyAiU09TIiA6ICJRdWlja2xpbmtzIiB9KSk7CiAgICAgIGhlYWQuYXBwZW5kQ2hpbGQo +ZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNzOiAicGUtcHRpdGxlIiwgdmFsdWU6IHBh +bmVsLnRpdGxlIHx8ICIiLCBwbGFjZWhvbGRlcjogIlBhbmVsLVRpdGVsIiwKICAgICAgICBvbmlu +cHV0OiBmdW5jdGlvbiAoKSB7IHBhbmVsLnRpdGxlID0gdGhpcy52YWx1ZTsgfSB9KSk7CiAgICAg +IHZhciBwYSA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJlLWFjdHMiIH0pOwogICAgICBwYS5hcHBl +bmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmkiLCB0aXRsZTogIlBhbmVsIGhv +Y2giLCB0ZXh0OiAi4payIiwgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShXLCBwaSwg +LTEpKSByZXJlbmRlcigpOyB9IH0pKTsKICAgICAgcGEuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIs +IHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJQYW5lbCBydW50ZXIiLCB0ZXh0OiAi4pa8Iiwg +b25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShXLCBwaSwgMSkpIHJlcmVuZGVyKCk7IH0g +fSkpOwogICAgICBwYS5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmki +LCB0aXRsZTogIlBhbmVsIGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAgICAgb25j +bGljazogZnVuY3Rpb24gKCkgeyBQLmNvbmZpcm0oIlBhbmVsIOKAniIgKyAocGFuZWwudGl0bGUg +fHwgIiIpICsgIuKAnCBzYW10IExpbmtzIGzDtnNjaGVuPyIsIGZ1bmN0aW9uICgpIHsgVy5zcGxp +Y2UocGksIDEpOyByZXJlbmRlcigpOyB9LCB7IGRhbmdlcjogdHJ1ZSB9KTsgfSB9KSk7CiAgICAg +IGhlYWQuYXBwZW5kQ2hpbGQocGEpOwoKICAgICAgdmFyIGxpbmtzID0gZWwoImRpdiIsIHsgY2xh +c3M6ICJwZS1saW5rcyIgfSk7CiAgICAgIChwYW5lbC5saW5rcyB8fCBbXSkuZm9yRWFjaChmdW5j +dGlvbiAobCwgbGkpIHsgbGlua3MuYXBwZW5kQ2hpbGQobGlua1JvdyhwYW5lbCwgbCwgbGkpKTsg +fSk7CgogICAgICB2YXIgYWRkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwZS1hZGQiIH0pOwogICAg +ICBhZGQuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJidG4gZ2hvc3QiLCBodG1s +OiBpYygibGluayIpICsgIiBFeHRlcm5lciBMaW5rIiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlv +biAoKSB7CiAgICAgICAgICB2YXIgbGFiZWwgPSBwcm9tcHQoIkJlemVpY2hudW5nIGRlcyBMaW5r +czoiKTsgaWYgKCFsYWJlbCkgcmV0dXJuOwogICAgICAgICAgdmFyIGhyZWYgPSBwcm9tcHQoIlpp +ZWwgKFVSTCBvZGVyIGRva3VtZW50ZS/igKYpOiIsICJodHRwczovLyIpOyBpZiAoaHJlZiA9PSBu +dWxsKSByZXR1cm47CiAgICAgICAgICAocGFuZWwubGlua3MgPSBwYW5lbC5saW5rcyB8fCBbXSku +cHVzaCh7IGxhYmVsOiBsYWJlbC50cmltKCksIGhyZWY6IGhyZWYudHJpbSgpLCB0YXJnZXQ6IC9e +aHR0cHM/OnxeXC9cLy9pLnRlc3QoaHJlZikgPyAiX2JsYW5rIiA6ICJjb250ZW50IiB9KTsKICAg +ICAgICAgIHJlcmVuZGVyKCk7CiAgICAgICAgfSB9KSk7CiAgICAgIGFkZC5hcHBlbmRDaGlsZChl +bCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBnaG9zdCIsIGh0bWw6IGljKCJhcnRpY2xlIikgKyAi +IEludGVybmVyIFZlcndlaXMiLAogICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKFAu +b3Blbk5hdlBpY2tlcikgUC5vcGVuTmF2UGlja2VyKGZ1bmN0aW9uIChyKSB7IChwYW5lbC5saW5r +cyA9IHBhbmVsLmxpbmtzIHx8IFtdKS5wdXNoKHsgcmVmOiByLl9pZCwgbGFiZWw6IHIubGFiZWwg +fSk7IHJlcmVuZGVyKCk7IH0pOyB9IH0pKTsKCiAgICAgIHJldHVybiBlbCgiZGl2IiwgeyBjbGFz +czogInBlLXBhbmVsIiB9LCBbaGVhZCwgbGlua3MsIGFkZF0pOwogICAgfQoKICAgIGZ1bmN0aW9u +IGJ1aWxkKGIpIHsKICAgICAgYi5jbGFzc0xpc3QuYWRkKCJwZS1ib2R5Iik7CiAgICAgIFcuZm9y +RWFjaChmdW5jdGlvbiAocGFuZWwsIHBpKSB7IGIuYXBwZW5kQ2hpbGQocGFuZWxFbChwYW5lbCwg +cGkpKTsgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2F2ZSgpIHsKICAgICAgLy8gbGVlcmUgTGlu +a3MgKG9obmUgTGFiZWwgdW5kIG9obmUgWmllbCkgdmVyd2VyZmVuCiAgICAgIFcuZm9yRWFjaChm +dW5jdGlvbiAocCkgeyBwLmxpbmtzID0gKHAubGlua3MgfHwgW10pLmZpbHRlcihmdW5jdGlvbiAo +bCkgeyByZXR1cm4gKGwubGFiZWwgfHwgIiIpLnRyaW0oKSB8fCBsLmhyZWYgfHwgbC5yZWY7IH0p +OyB9KTsKICAgICAgUC5jb250ZW50LnBhbmVscyA9IFc7CiAgICAgIFAucGVyc2lzdCgpOwogICAg +ICBpZiAoUC5yZW5kZXJQYW5lbHMpIFAucmVuZGVyUGFuZWxzKCk7CiAgICAgIGlmIChQLmJ1aWxk +SW5kZXgpIFAuYnVpbGRJbmRleCgpOwogICAgICBQLnRvYXN0KCJTY2huZWxsenVncmlmZmUgZ2Vz +cGVpY2hlcnQiICsgKFAubGl2ZSA/ICIgJiB2ZXLDtmZmZW50bGljaHQuIiA6ICIuIikpOwogICAg +fQoKICAgIFAubW9kYWwoewogICAgICB0aXRsZTogIlNjaG5lbGx6dWdyaWZmZSB2ZXJ3YWx0ZW4i +LCBpY29uOiAiZ3JpZCIsIHNpemU6ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7IGhv +c3QgPSBiOyBidWlsZChiKTsgfSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJQ +YW5lbCIsIGtpbmQ6ICJnaG9zdCIsIGljb246ICJwbHVzIiwgYWxpZ246ICJsZWZ0Iiwga2VlcE9w +ZW46IHRydWUsCiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IFcucHVzaCh7IGlkOiBQ +LnVpZCgicG5sIiksIHR5cGU6ICJxbCIsIGljb246ICJncmlkIiwgdGl0bGU6ICJOZXVlciBTY2hu +ZWxsenVncmlmZiIsIGxpbmtzOiBbXSB9KTsgcmVyZW5kZXIoKTsgfSB9LAogICAgICAgIHsgbGFi +ZWw6ICJBYmJyZWNoZW4iLCBraW5kOiAiZ2hvc3QiIH0sCiAgICAgICAgeyBsYWJlbDogIlNwZWlj +aGVybiIsIGtpbmQ6ICJwcmltYXJ5Iiwgb25DbGljazogc2F2ZSB9CiAgICAgIF0KICAgIH0pOwog +IH07Cgp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/features/panels.js | 7543 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgcGFuZWxzLmpzCiAgIFJlY2h0ZSBT +cGFsdGU6IFNvZm9ydG1hw59uYWhtZW4gKyBRdWlja2xpbmtzICsgRGllbnN0Z3J1cHBlIChSb3N0 +ZXIpLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwog +IHZhciBlbCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9IFAuZXNjYXBl +SHRtbDsKCiAgZnVuY3Rpb24gcWxFbChsaW5rLCBwYW5lbElkKSB7CiAgICB2YXIgYSA9IGVsKCJi +dXR0b24iLCB7IGNsYXNzOiAicWwiICsgKGxpbmsudmFyaWFudCA9PT0gInByaW1hcnkiIHx8IGxp +bmsudmFyaWFudCA9PT0gImRhbmdlciIgPyAiICIgKyBsaW5rLnZhcmlhbnQgOiAiIiksIHRpdGxl +OiBsaW5rLmhyZWYsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5uYXZpZ2F0ZShsaW5rKTsgfSB9 +KTsKICAgIGEuYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNsYXNzOiAibGJsIiwgdGV4dDogbGlu +ay5sYWJlbCB9KSk7CiAgICBpZiAobGluay50YXJnZXQgPT09ICJfYmxhbmsiKSBhLmFwcGVuZENo +aWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImV4dCIsIGh0bWw6IGljKCJleHQiKSB9KSk7CiAgICBh +LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogInFkZWwgZWRpdC1vbmx5IiwgdGl0bGU6 +ICJMaW5rIGVudGZlcm5lbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChlKSB7IGUuc3RvcFBy +b3BhZ2F0aW9uKCk7IHJlbW92ZUxpbmsocGFuZWxJZCwgbGluayk7IH0sIGh0bWw6IGljKCJ4Iikg +fSkpOwogICAgcmV0dXJuIGE7CiAgfQogIFAucmVuZGVyUGFuZWxzID0gZnVuY3Rpb24gKCkgewog +ICAgdmFyIGhvc3QgPSAkKCIjcGFuZWxzIik7IGhvc3QuaW5uZXJIVE1MID0gIiI7CiAgICAvLyBW +ZXJ3YWx0ZW4tRWluc3RpZWcgKG51ciBpbSBFZGl0LU1vZHVzIHNpY2h0YmFyKQogICAgdmFyIGJh +ciA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicGFuZWxzLXRvb2xiYXIgZWRpdC1vbmx5IiB9KTsKICAg +IGJhci5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogImFkZC1idG4iLCB0aXRsZTog +IlNjaG5lbGx6dWdyaWZmZSB2ZXJ3YWx0ZW4iLAogICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7 +IGlmIChQLm9wZW5QYW5lbEVkaXRvcikgUC5vcGVuUGFuZWxFZGl0b3IoKTsgfSwgaHRtbDogaWMo +ImdyaWQiKSArICJTY2huZWxsenVncmlmZmUgdmVyd2FsdGVuIiB9KSk7CiAgICBob3N0LmFwcGVu +ZENoaWxkKGJhcik7CiAgICBQLmNvbnRlbnQucGFuZWxzLmZvckVhY2goZnVuY3Rpb24gKHApIHsK +ICAgICAgaWYgKHAudHlwZSA9PT0gInNvcyIpIHsKICAgICAgICB2YXIgYm94ID0gZWwoImRpdiIs +IHsgY2xhc3M6ICJwYW5lbCBzb3MiIH0pOwogICAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgiZGl2 +IiwgeyBjbGFzczogInBhbmVsLWhlYWQiLCBodG1sOiAnPHNwYW4gY2xhc3M9ImljbyI+JyArIGlj +KCJhbGVydCIpICsgJzwvc3Bhbj48aDM+JyArIGVzY2FwZUh0bWwocC50aXRsZSkgKyAiPC9oMz4i +IH0pKTsKICAgICAgICBpZiAocC5wcmltYXJ5KSBib3guYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIs +IHsgY2xhc3M6ICJzb3MtcHJpbWFyeSIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5uYXZpZ2F0 +ZShwLnByaW1hcnkpOyB9LCBodG1sOiBpYygiYm9sdCIpICsgIjxzcGFuPiIgKyBlc2NhcGVIdG1s +KHAucHJpbWFyeS5sYWJlbCkgKyAiPC9zcGFuPiIgfSkpOwogICAgICAgIHZhciBnID0gZWwoImRp +diIsIHsgY2xhc3M6ICJxbC1ncmlkIiB9KTsKICAgICAgICAocC5saW5rcyB8fCBbXSkuZm9yRWFj +aChmdW5jdGlvbiAobCkgeyBnLmFwcGVuZENoaWxkKHFsRWwobCwgcC5pZCkpOyB9KTsKICAgICAg +ICBib3guYXBwZW5kQ2hpbGQoZyk7CiAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChib3gpOwogICAg +ICB9IGVsc2UgewogICAgICAgIHZhciBwbiA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicGFuZWwiIH0p +OwogICAgICAgIHZhciBoZWFkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwYW5lbC1oZWFkIiwgaHRt +bDogJzxzcGFuIGNsYXNzPSJpY28iPicgKyBpYyhwLmljb24gfHwgImdyaWQiKSArICI8L3NwYW4+ +PGgzPiIgKyBlc2NhcGVIdG1sKHAudGl0bGUpICsgIjwvaDM+IiB9KTsKICAgICAgICBoZWFkLmFw +cGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYWRkLWJ0biBlZGl0LW9ubHkiLCBvbmNs +aWNrOiBmdW5jdGlvbiAoKSB7IGFkZExpbmsocC5pZCk7IH0sIGh0bWw6IGljKCJwbHVzIikgKyAi +TGluayIgfSkpOwogICAgICAgIHBuLmFwcGVuZENoaWxkKGhlYWQpOwogICAgICAgIHZhciBncmlk +ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJxbC1ncmlkIHFsLTMiIH0pOwogICAgICAgIChwLmxpbmtz +IHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7IGdyaWQuYXBwZW5kQ2hpbGQocWxFbChsLCBw +LmlkKSk7IH0pOwogICAgICAgIHBuLmFwcGVuZENoaWxkKGdyaWQpOwogICAgICAgIGhvc3QuYXBw +ZW5kQ2hpbGQocG4pOwogICAgICB9CiAgICB9KTsKICAgIHJlbmRlclJvc3Rlcihob3N0KTsKICB9 +OwogIGZ1bmN0aW9uIGFkZExpbmsocGFuZWxJZCkgewogICAgdmFyIGxhYmVsID0gcHJvbXB0KCJC +ZXplaWNobnVuZyBkZXMgTGlua3M6Iik7IGlmICghbGFiZWwpIHJldHVybjsKICAgIHZhciBocmVm +ID0gcHJvbXB0KCJaaWVsIChVUkwgb2RlciBQZmFkKToiLCAiaHR0cHM6Ly8iKTsgaWYgKGhyZWYg +PT0gbnVsbCkgcmV0dXJuOwogICAgaWYgKGhyZWYgJiYgIVAuc2FmZVVybChocmVmKSkgeyBQLnRv +YXN0KCJVbnNpY2hlcmVzIFppZWwg4oCUIG51ciBodHRwcy9Qb3J0YWwtUGZhZGUgZXJsYXVidC4i +LCB0cnVlKTsgcmV0dXJuOyB9CiAgICB2YXIgZXh0ID0gL15odHRwcz86fF5cL1wvL2kudGVzdCho +cmVmKTsKICAgIHZhciBwID0gUC5jb250ZW50LnBhbmVscy5maW5kKGZ1bmN0aW9uICh4KSB7IHJl +dHVybiB4LmlkID09PSBwYW5lbElkOyB9KTsKICAgIHAubGlua3MgPSBwLmxpbmtzIHx8IFtdOyBw +LmxpbmtzLnB1c2goeyBsYWJlbDogbGFiZWwsIGhyZWY6IGhyZWYsIHRhcmdldDogZXh0ID8gIl9i +bGFuayIgOiAiY29udGVudCIgfSk7CiAgICBQLnBlcnNpc3QoKTsgUC5yZW5kZXJQYW5lbHMoKTsg +UC50b2FzdCgiTGluayBoaW56dWdlZsO8Z3QuIik7CiAgfQogIGZ1bmN0aW9uIHJlbW92ZUxpbmso +cGFuZWxJZCwgbGluaykgewogICAgdmFyIHAgPSBQLmNvbnRlbnQucGFuZWxzLmZpbmQoZnVuY3Rp +b24gKHgpIHsgcmV0dXJuIHguaWQgPT09IHBhbmVsSWQ7IH0pOwogICAgcC5saW5rcyA9IHAubGlu +a3MuZmlsdGVyKGZ1bmN0aW9uIChsKSB7IHJldHVybiBsICE9PSBsaW5rOyB9KTsKICAgIFAucGVy +c2lzdCgpOyBQLnJlbmRlclBhbmVscygpOwogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGllbnN0Z3J1cHBlICsgVWhy +ICovCiAgdmFyIGNsb2NrVGltZXI7CiAgZnVuY3Rpb24gZm10Q2xvY2soKSB7CiAgICB2YXIgZCA9 +IG5ldyBEYXRlKCk7CiAgICB2YXIgd2QgPSBbIlNvbm50YWciLCJNb250YWciLCJEaWVuc3RhZyIs +Ik1pdHR3b2NoIiwiRG9ubmVyc3RhZyIsIkZyZWl0YWciLCJTYW1zdGFnIl1bZC5nZXREYXkoKV07 +CiAgICB2YXIgbW8gPSBbIkphbnVhciIsIkZlYnJ1YXIiLCJNw6RyeiIsIkFwcmlsIiwiTWFpIiwi +SnVuaSIsIkp1bGkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPa3RvYmVyIiwiTm92ZW1iZXIiLCJE +ZXplbWJlciJdW2QuZ2V0TW9udGgoKV07CiAgICB2YXIgaGggPSAoIjAiICsgZC5nZXRIb3Vycygp +KS5zbGljZSgtMiksIG1tID0gKCIwIiArIGQuZ2V0TWludXRlcygpKS5zbGljZSgtMik7CiAgICBy +ZXR1cm4gd2QgKyAiLCAiICsgZC5nZXREYXRlKCkgKyAiLiAiICsgbW8gKyAiICIgKyBkLmdldEZ1 +bGxZZWFyKCkgKyAiICAiICsgaGggKyAiOiIgKyBtbSArICIgVWhyIjsKICB9CiAgZnVuY3Rpb24g +cm9zdGVyU2VjdGlvbnMoYm94LCBzZWN0aW9ucykgewogICAgKHNlY3Rpb25zIHx8IFtdKS5mb3JF +YWNoKGZ1bmN0aW9uIChzZWMpIHsKICAgICAgdmFyIHRibCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAi +ci1zZWMiIH0pOwogICAgICBpZiAoc2VjLnRpdGxlKSB0YmwuYXBwZW5kQ2hpbGQoZWwoImRpdiIs +IHsgY2xhc3M6ICJyLXNlYy1oIiwgdGV4dDogc2VjLnRpdGxlIH0pKTsKICAgICAgKHNlYy5yb3dz +IHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsKICAgICAgICB2YXIgbGFiZWwgPSBlbCgi +ZGl2IiwgeyBjbGFzczogInItbGFiZWwiIH0sIFtlbCgic3BhbiIsIHsgY2xhc3M6ICJyb2xlIiwg +dGV4dDogcm93LnJvbGUgfSldKTsKICAgICAgICBpZiAocm93LnN1YikgbGFiZWwuYXBwZW5kQ2hp +bGQoZWwoInNwYW4iLCB7IGNsYXNzOiAic3ViIG1vbm8iLCB0ZXh0OiByb3cuc3ViIH0pKTsKICAg +ICAgICB2YXIgaW5wID0gZWwoImlucHV0IiwgeyBjbGFzczogInItbmFtZSIsIHZhbHVlOiByb3cu +bmFtZSB8fCAiIiwgcGxhY2Vob2xkZXI6ICJOYW1lIOKApiIsIHNwZWxsY2hlY2s6ICJmYWxzZSIs +CiAgICAgICAgICBvbmlucHV0OiBmdW5jdGlvbiAoZSkgeyByb3cubmFtZSA9IGUudGFyZ2V0LnZh +bHVlOyBQLnNjaGVkdWxlUGVyc2lzdCgpOyB9IH0pOwogICAgICAgIHRibC5hcHBlbmRDaGlsZChl +bCgiZGl2IiwgeyBjbGFzczogInItcm93IiB9LCBbbGFiZWwsIGVsKCJkaXYiLCB7IGNsYXNzOiAi +ci1uYW1lLWNlbGwiIH0sIFtpbnBdKV0pKTsKICAgICAgfSk7CiAgICAgIGJveC5hcHBlbmRDaGls +ZCh0YmwpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIHJlbmRlclJvc3Rlcihob3N0KSB7CiAgICB2 +YXIgUiA9IFAuY29udGVudC5yb3N0ZXI7IGlmICghUikgcmV0dXJuOwogICAgaWYgKCFSLmdyb3Vw +cykgUiA9IFAuY29udGVudC5yb3N0ZXIgPSBQLm5vcm1hbGl6ZVJvc3RlcihSKTsKICAgIHZhciBn +cm91cHMgPSBSLmdyb3VwcyB8fCBbXTsKICAgIHZhciBzaW5nbGUgPSBncm91cHMubGVuZ3RoID09 +PSAxOwogICAgdmFyIGJveCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicm9zdGVyIiB9KTsKCiAgICB2 +YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicm9zdGVyLWhlYWQiIH0pOwogICAgdmFyIHRp +dGxlID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyb3N0ZXItdGl0bGUiIH0pOwogICAgdGl0bGUuYXBw +ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoUC50KCJyb3N0ZXIudGl0bGUiKSkpOwog +ICAgaWYgKHNpbmdsZSkgewogICAgICAvLyBFaW56ZWxncnVwcGU6IGdld29obnRlIElubGluZS1L +ZW5udW5nIGltIEtvcGYgYmVhcmJlaXRiYXIuCiAgICAgIHRpdGxlLmFwcGVuZENoaWxkKGRvY3Vt +ZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOwogICAgICB0aXRsZS5hcHBlbmRDaGlsZChncm91cElu +cHV0KFIsIGdyb3Vwc1swXSkpOwogICAgfQogICAgaGVhZC5hcHBlbmRDaGlsZCh0aXRsZSk7CiAg +ICB2YXIgYWN0aW9ucyA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJvc3Rlci1hY3Rpb25zIiB9KTsK +ICAgIGFjdGlvbnMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJpY29uLW1pbmkg +ZWRpdC1vbmx5IiwgdGl0bGU6ICJEaWVuc3RncnVwcGUgYmVhcmJlaXRlbiIsCiAgICAgIG9uY2xp +Y2s6IGZ1bmN0aW9uICgpIHsgaWYgKFAub3BlblJvc3RlckVkaXRvcikgUC5vcGVuUm9zdGVyRWRp +dG9yKCk7IH0sIGh0bWw6IGljKCJlZGl0IikgfSkpOwogICAgaGVhZC5hcHBlbmRDaGlsZChhY3Rp +b25zKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJyb3N0ZXItY2xv +Y2sgbW9ubyIsIHRleHQ6IGZtdENsb2NrKCkgfSkpOwogICAgYm94LmFwcGVuZENoaWxkKGhlYWQp +OwogICAgY2xlYXJJbnRlcnZhbChjbG9ja1RpbWVyKTsgY2xvY2tUaW1lciA9IHNldEludGVydmFs +KGZ1bmN0aW9uICgpIHsgdmFyIGMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucm9zdGVyLWNs +b2NrIik7IGlmIChjKSBjLnRleHRDb250ZW50ID0gZm10Q2xvY2soKTsgfSwgMTUwMDApOwoKICAg +IGdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uIChnKSB7CiAgICAgIGlmICghc2luZ2xlKSB7CiAgICAg +ICAgdmFyIGdoID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyLWdyb3VwLWgiIH0pOwogICAgICAgIGdo +LmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogInItZ3JvdXAtbGJsIiwgdGV4dDogUC50 +KCJyb3N0ZXIudGl0bGUiKSB9KSk7CiAgICAgICAgZ2guYXBwZW5kQ2hpbGQoZ3JvdXBJbnB1dChS +LCBnKSk7CiAgICAgICAgYm94LmFwcGVuZENoaWxkKGdoKTsKICAgICAgfQogICAgICByb3N0ZXJT +ZWN0aW9ucyhib3gsIGcuc2VjdGlvbnMpOwogICAgfSk7CiAgICBob3N0LmFwcGVuZENoaWxkKGJv +eCk7CiAgfQogIGZ1bmN0aW9uIGdyb3VwSW5wdXQoUiwgZykgewogICAgcmV0dXJuIGVsKCJpbnB1 +dCIsIHsgY2xhc3M6ICJyLWdyb3VwIG1vbm8iLCB2YWx1ZTogIi0iICsgKGcubGFiZWwgfHwgIiIp +ICsgIi0iLCAiYXJpYS1sYWJlbCI6ICJEaWVuc3RncnVwcGUiLAogICAgICBvbmlucHV0OiBmdW5j +dGlvbiAoZSkgeyBnLmxhYmVsID0gZS50YXJnZXQudmFsdWUucmVwbGFjZSgvLS9nLCAiIikudHJp +bSgpOyBpZiAoUi5ncm91cHNbMF0gPT09IGcpIFIuZ3JvdXAgPSBnLmxhYmVsOyBQLnNjaGVkdWxl +UGVyc2lzdCgpOyB9IH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHlwLVJlZ2lzdHJpZXJ1bmcgKFBoYXNlIDMp +CiAgICAgU29mb3J0bWFzc25haG1lbiArIFF1aWNrbGlua3MgYXVzIGRlciByZWNodGVuIFNwYWx0 +ZSBmdWVyIFN1Y2hlICYgQS1aLiAqLwogIFAucmVnaXN0ZXJUeXBlKHsKICAgIGtleTogInBhbmVs +LWxpbmsiLCBsYWJlbDogIlNjaG5lbGx6dWdyaWZmIiwgaWNvbjogImxpbmsiLAogICAgYnVpbGRJ +bmRleDogZnVuY3Rpb24gKHB1c2gpIHsKICAgICAgUC5jb250ZW50LnBhbmVscy5mb3JFYWNoKGZ1 +bmN0aW9uIChwKSB7CiAgICAgICAgaWYgKHAucHJpbWFyeSkgcHVzaCh7IGtpbmQ6ICJTb2ZvcnQi +LCBpY29uOiAiYm9sdCIsIGl0OiBwLnByaW1hcnksIGxhYmVsOiBwLnByaW1hcnkubGFiZWwsIHBh +dGg6IHAudGl0bGUsIGhheTogUC5kZWFjY2VudChwLnByaW1hcnkubGFiZWwgKyAiICIgKyBwLnRp +dGxlKSB9KTsKICAgICAgICAocC5saW5rcyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbiAobCkgeyBw +dXNoKHsga2luZDogIkxpbmsiLCBpY29uOiBsLnRhcmdldCA9PT0gIl9ibGFuayIgPyAiZXh0IiA6 +ICJsaW5rIiwgaXQ6IGwsIGxhYmVsOiBsLmxhYmVsLCBwYXRoOiBwLnRpdGxlLCBoYXk6IFAuZGVh +Y2NlbnQobC5sYWJlbCArICIgIiArIHAudGl0bGUpIH0pOyB9KTsKICAgICAgfSk7CiAgICB9CiAg +fSk7Cgp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/features/pruefung.js | 8174 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvcHJ1ZWZ1bmcuanMK +ICAgUHLDvGYtV2Vya3pldWc6IGFsbGUgYXVzIGRlciBOYXZpZ2F0aW9uIGdlem9nZW5lbiBNaWdy +YXRpb25zLUxpbmtzIChQT1JUQUxfUFJVRUZVTkcpCiAgIGR1cmNoZ2VoZW4uIExpbmtlIFNwYWx0 +ZSA9IExpc3RlIG1pdCBqZSBkcmVpIE9wdGlvbmVuIChCZWhhbHRlbi9CZWFyYmVpdGVuL0zDtnNj +aGVuKTsKICAgS2xpY2sgYXVmIGRlbiBUaXRlbCB6ZWlndCByZWNodHMgZWluZSBWb3JzY2hhdSAo +QXJ0aWtlbCBnZXJlbmRlcnQgYnp3LiBaaWVsIGltIGlmcmFtZSkuCiAgICJCZWFyYmVpdGVuIiDD +tmZmbmV0IGVpbiBOb3RpemZlbGQgKEF1dG9zYXZlKS4gIlp1c2FtbWVuZmFzc3VuZyIgZXJ6ZXVn +dCBlaW5lbiBrb3BpZXJiYXJlbgogICBFcmdlYm5pcy1UZXh0IHp1ciDDnGJlcmdhYmUgYW4gZGll +IEVudHdpY2tsdW5nLiBBdWZydWYgw7xiZXIgZGVuIGxpbmtlbiAiUHLDvGZ1bmciLUxpbmsuCiAg +ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVs +ID0gUC5lbCwgJCA9IFAuJCwgaWMgPSBQLmljOwogIHZhciBTVEFUID0gW1sia2VlcCIsICJCZWhh +bHRlbiJdLCBbImVkaXQiLCAiQmVhcmJlaXRlbiJdLCBbImRlbGV0ZSIsICJMw7ZzY2hlbiJdXTsK +CiAgZnVuY3Rpb24gbGlzdCgpIHsgcmV0dXJuIChQLmNvbnRlbnQgJiYgUC5jb250ZW50LnBydWVm +dW5nKSB8fCBbXTsgfQoKICBmdW5jdGlvbiByZW5kZXJQcmV2aWV3KHBhbmUsIGUpIHsKICAgIHBh +bmUuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIgcmVmID0gZS5yZWYgfHwge307CiAgICB2YXIgaGVh +ZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicHJ1ZWYtcHYtaGVhZCIgfSk7CiAgICBoZWFkLmFwcGVu +ZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAicHJ1ZWYtcHYtdGl0bGUiLCB0ZXh0OiBlLmxhYmVs +IH0pKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVlZi1wdi10 +YXJnZXQgbW9ubyIsIHRleHQ6IHJlZi5ocmVmIHx8IHJlZi5mb2xkZXIgfHwgKHJlZi5hcnRpY2xl +ID8gIkFydGlrZWwiIDogIiIpIHx8ICIiIH0pKTsKICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoImJ1 +dHRvbiIsIHsgY2xhc3M6ICJidG4gZ2hvc3QiLCBodG1sOiBpYygiZXh0IikgKyAiPHNwYW4+SW0g +UG9ydGFsIMO2ZmZuZW48L3NwYW4+IiwKICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAo +UC5uYXZpZ2F0ZSkgUC5uYXZpZ2F0ZShyZWYpOyB9IH0pKTsKICAgIHBhbmUuYXBwZW5kQ2hpbGQo +aGVhZCk7CiAgICB2YXIgYm94ID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVlZi1wdi1ib2R5IiB9 +KTsKICAgIHBhbmUuYXBwZW5kQ2hpbGQoYm94KTsKCiAgICBpZiAocmVmLmFydGljbGUpIHsKICAg +ICAgdmFyIGEgPSByZWYuYXJ0aWNsZTsKICAgICAgaWYgKGEuYm9keUV4dCAmJiAoYS5odG1sID09 +IG51bGwgfHwgYS5odG1sID09PSAiIikgJiYgUC5sb2FkQXJ0aWNsZUJvZHkgJiYgcmVmLl9pZCkg +ewogICAgICAgIGJveC5pbm5lckhUTUwgPSAiPHAgY2xhc3M9J211dGVkJz5JbmhhbHQgd2lyZCBn +ZWxhZGVuIOKApjwvcD4iOwogICAgICAgIFAubG9hZEFydGljbGVCb2R5KHJlZi5faWQsIGZ1bmN0 +aW9uIChodG1sLCBlcnIpIHsgYm94LmlubmVySFRNTCA9IGVyciA/ICI8cCBjbGFzcz0nbXV0ZWQn +PkluaGFsdCBuaWNodCBsYWRiYXIuPC9wPiIgOiBQLnNhbml0aXplSHRtbChodG1sIHx8ICIiKTsg +fSk7CiAgICAgIH0gZWxzZSB7IGJveC5pbm5lckhUTUwgPSBQLnNhbml0aXplSHRtbChhLmh0bWwg +fHwgIiIpOyB9CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBocmVmID0gcmVmLmhyZWYgfHwg +IiI7CiAgICBpZiAocmVmLmZvbGRlciB8fCAvXihhcHA6fGNvbDp8bWFpbHRvOikvaS50ZXN0KGhy +ZWYpKSB7CiAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCIsIHRl +eHQ6IHJlZi5mb2xkZXIgPyAoIk9yZG5lcjogIiArIHJlZi5mb2xkZXIpIDogKCJTcGV6aWFsemll +bDogIiArIGhyZWYpIH0pKTsKICAgICAgYm94LmFwcGVuZENoaWxkKGVsKCJwIiwgeyBjbGFzczog +Im11dGVkIHNtYWxsIiwgdGV4dDogIlZvcnNjaGF1IMO8YmVyIOKAnkltIFBvcnRhbCDDtmZmbmVu +4oCcLiIgfSkpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoaHJlZikgewogICAgICBib3gu +YXBwZW5kQ2hpbGQoZWwoImlmcmFtZSIsIHsgY2xhc3M6ICJwcnVlZi1mcmFtZSIsIHNyYzogaHJl +ZiwgdGl0bGU6ICJWb3JzY2hhdSIgfSkpOwogICAgICBib3guYXBwZW5kQ2hpbGQoZWwoInAiLCB7 +IGNsYXNzOiAibXV0ZWQgc21hbGwiLCB0ZXh0OiAiQmxlaWJ0IGRpZSBWb3JzY2hhdSBsZWVyL2Js +b2NraWVydCAoei4gQi4gSW50cmFuZXQtU2VpdGUpOiDigJ5JbSBQb3J0YWwgw7ZmZm5lbuKAnC4i +IH0pKTsKICAgIH0gZWxzZSB7CiAgICAgIGJveC5hcHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6 +ICJtdXRlZCIsIHRleHQ6ICJLZWluIFppZWwgaGludGVybGVndC4iIH0pKTsKICAgIH0KICB9CiAg +ZnVuY3Rpb24gc3RhdHVzQ2xhc3MocykgeyByZXR1cm4gcyA/ICIgc3QtIiArIHMgOiAiIjsgfQoK +ICBmdW5jdGlvbiByZW5kZXIoKSB7CiAgICB2YXIgaG9zdCA9ICQoIiNjdi1hcnRpY2xlIik7IGlm +ICghaG9zdCkgcmV0dXJuOwogICAgaG9zdC5pbm5lckhUTUwgPSAiIjsKICAgIHZhciBMID0gbGlz +dCgpOwogICAgdmFyIGNvdW50cyA9IHsgIiI6IDAsIGtlZXA6IDAsIGVkaXQ6IDAsICJkZWxldGUi +OiAwIH07CiAgICBMLmZvckVhY2goZnVuY3Rpb24gKGUpIHsgY291bnRzW2Uuc3RhdHVzIHx8ICIi +XSsrOyB9KTsKCiAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiYXJ0LWhlYWQiIH0p +OwogICAgaGVhZC5hcHBlbmRDaGlsZChlbCgiaDEiLCB7IHRleHQ6ICJQcsO8ZnVuZyBkZXIgTWln +cmF0aW9ucy1MaW5rcyIgfSkpOwogICAgaGVhZC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz +czogInBydWVmLXN0YXRzIG1vbm8iLCB0ZXh0OgogICAgICBMLmxlbmd0aCArICIgZ2VzYW10IMK3 +IG9mZmVuICIgKyBjb3VudHNbIiJdICsgIiDCtyBiZWhhbHRlbiAiICsgY291bnRzLmtlZXAgKyAi +IMK3IGJlYXJiZWl0ZW4gIiArIGNvdW50cy5lZGl0ICsgIiDCtyBsw7ZzY2hlbiAiICsgY291bnRz +WyJkZWxldGUiXSB9KSk7CiAgICB2YXIgYWN0YmFyID0gZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVl +Zi1hY3RiYXIiIH0pOwogICAgYWN0YmFyLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNz +OiAiYnRuIHByaW1hcnkiLCBodG1sOiBpYygiZG93bmxvYWQiKSArICI8c3Bhbj5adXNhbW1lbmZh +c3N1bmc8L3NwYW4+Iiwgb25jbGljazogc3VtbWFyeSB9KSk7CiAgICBoZWFkLmFwcGVuZENoaWxk +KGFjdGJhcik7CiAgICBob3N0LmFwcGVuZENoaWxkKGhlYWQpOwoKICAgIHZhciBsaXN0RWwgPSBl +bCgiZGl2IiwgeyBjbGFzczogInBydWVmLWxpc3QiIH0pOwogICAgdmFyIHBhbmUgPSBlbCgiZGl2 +IiwgeyBjbGFzczogInBydWVmLXByZXZpZXciIH0sIFtlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCIs +IHRleHQ6ICJFaW5lbiBFaW50cmFnIGxpbmtzIHfDpGhsZW4g4oCUIGhpZXIgZXJzY2hlaW50IGRp +ZSBWb3JzY2hhdS4iIH0pXSk7CgogICAgdmFyIGN1ckdyb3VwID0gbnVsbDsKICAgIEwuZm9yRWFj +aChmdW5jdGlvbiAoZSkgewogICAgICBpZiAoZS5ncm91cCAhPT0gY3VyR3JvdXApIHsgY3VyR3Jv +dXAgPSBlLmdyb3VwOyBsaXN0RWwuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVl +Zi1ncm91cCIsIHRleHQ6IGUuZ3JvdXAgfHwgIuKAlCIgfSkpOyB9CiAgICAgIHZhciByb3cgPSBl +bCgiZGl2IiwgeyBjbGFzczogInBydWVmLXJvdyIgKyBzdGF0dXNDbGFzcyhlLnN0YXR1cykgfSk7 +CiAgICAgIHZhciBub3RlV3JhcCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicHJ1ZWYtbm90ZSIsIHN0 +eWxlOiBlLnN0YXR1cyA9PT0gImVkaXQiID8gIiIgOiAiZGlzcGxheTpub25lIiB9KTsKICAgICAg +dmFyIHRpdGxlID0gZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJwcnVlZi10aXRsZSIsIHRleHQ6IGUu +bGFiZWwsIHRpdGxlOiAoZS5yZWYgJiYgKGUucmVmLmhyZWYgfHwgZS5yZWYuZm9sZGVyKSkgfHwg +IiIsCiAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyBQLiQkKCIucHJ1ZWYtcm93LnNlbCIp +LmZvckVhY2goZnVuY3Rpb24gKG4pIHsgbi5jbGFzc0xpc3QucmVtb3ZlKCJzZWwiKTsgfSk7IHJv +dy5jbGFzc0xpc3QuYWRkKCJzZWwiKTsgcmVuZGVyUHJldmlldyhwYW5lLCBlKTsgfSB9KTsKICAg +ICAgdmFyIG9wdHMgPSBlbCgiZGl2IiwgeyBjbGFzczogInBydWVmLW9wdHMiIH0pOwogICAgICBT +VEFULmZvckVhY2goZnVuY3Rpb24gKHMpIHsKICAgICAgICBvcHRzLmFwcGVuZENoaWxkKGVsKCJi +dXR0b24iLCB7IGNsYXNzOiAicHJ1ZWYtb3B0IG9wdC0iICsgc1swXSArIChlLnN0YXR1cyA9PT0g +c1swXSA/ICIgb24iIDogIiIpLCB0ZXh0OiBzWzFdLAogICAgICAgICAgb25jbGljazogZnVuY3Rp +b24gKCkgewogICAgICAgICAgICBlLnN0YXR1cyA9IChlLnN0YXR1cyA9PT0gc1swXSkgPyAiIiA6 +IHNbMF07CiAgICAgICAgICAgIFAuc2NoZWR1bGVQZXJzaXN0KCk7CiAgICAgICAgICAgIHJvdy5j +bGFzc05hbWUgPSAicHJ1ZWYtcm93IiArIHN0YXR1c0NsYXNzKGUuc3RhdHVzKSArIChyb3cuY2xh +c3NMaXN0LmNvbnRhaW5zKCJzZWwiKSA/ICIgc2VsIiA6ICIiKTsKICAgICAgICAgICAgUC4kJCgi +LnBydWVmLW9wdCIsIG9wdHMpLmZvckVhY2goZnVuY3Rpb24gKGIsIGkpIHsgYi5jbGFzc0xpc3Qu +dG9nZ2xlKCJvbiIsIFNUQVRbaV1bMF0gPT09IGUuc3RhdHVzKTsgfSk7CiAgICAgICAgICAgIG5v +dGVXcmFwLnN0eWxlLmRpc3BsYXkgPSAoZS5zdGF0dXMgPT09ICJlZGl0IikgPyAiIiA6ICJub25l +IjsKICAgICAgICAgICAgaGVhZC5xdWVyeVNlbGVjdG9yKCIucHJ1ZWYtc3RhdHMiKS50ZXh0Q29u +dGVudCA9IHN0YXRzVGV4dCgpOwogICAgICAgICAgfSB9KSk7CiAgICAgIH0pOwogICAgICBub3Rl +V3JhcC5hcHBlbmRDaGlsZChlbCgidGV4dGFyZWEiLCB7IGNsYXNzOiAicHJ1ZWYtbm90ZS10YSIs +IHJvd3M6ICIyIiwgcGxhY2Vob2xkZXI6ICJBcmJlaXRzaGlud2VpcyDigKYiLCB2YWx1ZTogZS5u +b3RlIHx8ICIiLAogICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgZS5ub3RlID0gdGhpcy52 +YWx1ZTsgUC5zY2hlZHVsZVBlcnNpc3QoKTsgfSB9KSk7CiAgICAgIHJvdy5hcHBlbmRDaGlsZChl +bCgiZGl2IiwgeyBjbGFzczogInBydWVmLXJvd3RvcCIgfSwgW3RpdGxlLCBvcHRzXSkpOwogICAg +ICByb3cuYXBwZW5kQ2hpbGQobm90ZVdyYXApOwogICAgICBsaXN0RWwuYXBwZW5kQ2hpbGQocm93 +KTsKICAgIH0pOwogICAgaWYgKCFMLmxlbmd0aCkgbGlzdEVsLmFwcGVuZENoaWxkKGVsKCJwIiwg +eyBjbGFzczogIm11dGVkIiwgdGV4dDogIktlaW5lIEVpbnRyw6RnZSB6dSBwcsO8ZmVuLiIgfSkp +OwoKICAgIGhvc3QuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJwcnVlZi1zcGxpdCIg +fSwgW2xpc3RFbCwgcGFuZV0pKTsKICB9CiAgZnVuY3Rpb24gc3RhdHNUZXh0KCkgewogICAgdmFy +IEwgPSBsaXN0KCksIGMgPSB7ICIiOiAwLCBrZWVwOiAwLCBlZGl0OiAwLCAiZGVsZXRlIjogMCB9 +OwogICAgTC5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7IGNbZS5zdGF0dXMgfHwgIiJdKys7IH0pOwog +ICAgcmV0dXJuIEwubGVuZ3RoICsgIiBnZXNhbXQgwrcgb2ZmZW4gIiArIGNbIiJdICsgIiDCtyBi +ZWhhbHRlbiAiICsgYy5rZWVwICsgIiDCtyBiZWFyYmVpdGVuICIgKyBjLmVkaXQgKyAiIMK3IGzD +tnNjaGVuICIgKyBjWyJkZWxldGUiXTsKICB9CgogIGZ1bmN0aW9uIHN1bW1hcnkoKSB7CiAgICB2 +YXIgTCA9IGxpc3QoKTsKICAgIHZhciBsaW5lcyA9IFsiIyBQcnVlZnVuZ3MtRXJnZWJuaXMgKCIg +KyBMLmxlbmd0aCArICIgTGlua3MpIiwgIiJdOwogICAgdmFyIG5hbWVzID0geyBrZWVwOiAiQkVI +QUxURU4iLCBlZGl0OiAiQkVBUkJFSVRFTiIsICJkZWxldGUiOiAiTE9FU0NIRU4iLCAiIjogIk9G +RkVOIChub2NoIG5pY2h0IGdlcHJ1ZWZ0KSIgfTsKICAgIFsia2VlcCIsICJlZGl0IiwgImRlbGV0 +ZSIsICIiXS5mb3JFYWNoKGZ1bmN0aW9uIChzdCkgewogICAgICB2YXIgZ3JwID0gTC5maWx0ZXIo +ZnVuY3Rpb24gKGUpIHsgcmV0dXJuIChlLnN0YXR1cyB8fCAiIikgPT09IHN0OyB9KTsKICAgICAg +aWYgKCFncnAubGVuZ3RoKSByZXR1cm47CiAgICAgIGxpbmVzLnB1c2goIiMjICIgKyBuYW1lc1tz +dF0gKyAiICgiICsgZ3JwLmxlbmd0aCArICIpIik7CiAgICAgIGdycC5mb3JFYWNoKGZ1bmN0aW9u +IChlKSB7CiAgICAgICAgdmFyIHQgPSAoZS5yZWYgJiYgKGUucmVmLmhyZWYgfHwgZS5yZWYuZm9s +ZGVyKSkgfHwgKGUucmVmICYmIGUucmVmLmFydGljbGUgPyAiQXJ0aWtlbCIgOiAiIik7CiAgICAg +ICAgbGluZXMucHVzaCgiLSAiICsgZS5sYWJlbCArICIgIHwgICIgKyB0ICsgKGUubm90ZSA/ICIg +IHwgIEhpbndlaXM6ICIgKyBlLm5vdGUgOiAiIikpOwogICAgICB9KTsKICAgICAgbGluZXMucHVz +aCgiIik7CiAgICB9KTsKICAgIHZhciB0eHQgPSBsaW5lcy5qb2luKCJcbiIpOwogICAgUC5tb2Rh +bCh7CiAgICAgIHRpdGxlOiAiUHLDvGZ1bmdzLVp1c2FtbWVuZmFzc3VuZyIsIGljb246ICJkb3du +bG9hZCIsIHNpemU6ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7CiAgICAgICAgYi5h +cHBlbmRDaGlsZChlbCgicCIsIHsgY2xhc3M6ICJtdXRlZCBzbWFsbCIsIHRleHQ6ICJNYXJraWVy +ZW4gJiBrb3BpZXJlbiB1bmQgYW4gZGllIEVudHdpY2tsdW5nIMO8YmVyZ2ViZW4g4oCUIGRhbm4g +d2lyZCBnZW5hdSBzbyB2ZXJmYWhyZW4uIiB9KSk7CiAgICAgICAgdmFyIHRhID0gZWwoInRleHRh +cmVhIiwgeyBjbGFzczogInNldC1iaWd0YSIsIHJvd3M6ICIyMCIgfSk7IHRhLnZhbHVlID0gdHh0 +OyBiLmFwcGVuZENoaWxkKHRhKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdHJ5 +IHsgdGEuZm9jdXMoKTsgdGEuc2VsZWN0KCk7IH0gY2F0Y2ggKGUpIHt9IH0sIDMwKTsKICAgICAg +fSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6ICJJbiBad2lzY2hlbmFibGFnZSIs +IGtpbmQ6ICJnaG9zdCIsIGFsaWduOiAibGVmdCIsIGtlZXBPcGVuOiB0cnVlLCBvbkNsaWNrOiBm +dW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkKSB7IG5hdmln +YXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHR4dCkudGhlbihmdW5jdGlvbiAoKSB7IFAudG9hc3Qo +IktvcGllcnQuIik7IH0sIGZ1bmN0aW9uICgpIHsgUC50b2FzdCgiQml0dGUgbWFudWVsbCBrb3Bp +ZXJlbi4iLCB0cnVlKTsgfSk7IH0KICAgICAgICAgICAgZWxzZSBQLnRvYXN0KCJCaXR0ZSBtYW51 +ZWxsIG1hcmtpZXJlbiAmIGtvcGllcmVuLiIsIHRydWUpOyB9IH0sCiAgICAgICAgeyBsYWJlbDog +IlNjaGxpZcOfZW4iLCBraW5kOiAiZ2hvc3QiIH0KICAgICAgXQogICAgfSk7CiAgfQoKICBQLm9w +ZW5QcnVlZnVuZyA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBjID0gJCgiLmNlbnRlciIpOyBpZiAo +IWMpIHJldHVybjsKICAgIGMuY2xhc3NMaXN0LmFkZCgiZG9jIiwgImFydGljbGUiKTsKICAgICQo +IiNjdi1wYXRoIikudGV4dENvbnRlbnQgPSAiUHLDvGZ1bmciOwogICAgJCgiI2N2LWZyYW1lIiku +c2V0QXR0cmlidXRlKCJzcmMiLCAiYWJvdXQ6YmxhbmsiKTsKICAgIHJlbmRlcigpOwogICAgUC5j +dXJBcnRpY2xlID0gbnVsbDsKICAgIGlmIChQLm1hcmtDdXJyZW50KSBQLm1hcmtDdXJyZW50KCJh +cHA6cHJ1ZWZ1bmciKTsKICAgIFAuY2xvc2VNb2JpbGUgJiYgUC5jbG9zZU1vYmlsZSgpOwogIH07 +CgogIGlmIChQLnJlZ2lzdGVyQXBwKSBQLnJlZ2lzdGVyQXBwKCJwcnVlZnVuZyIsIGZ1bmN0aW9u +ICgpIHsgUC5vcGVuUHJ1ZWZ1bmcoKTsgfSwgWyJwcsO8ZnVuZyIsICJwcnVlZnVuZyIsICJwcnVl +ZmVuIl0pOwoKfSkod2luZG93LlApOwo= +### FILE: assets/js/features/roster-edit.js | 10189 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvcm9zdGVyLWVkaXQu +anMgIChQaGFzZSA3KQogICBQZmxlZ2UtVUkgZnVlciBkaWUgRGllbnN0Z3J1cHBlKG4pL0Z1ZWhy +dW5nc2dydXBwZTogU2NoaWNodGdydXBwZW4sCiAgIFNla3Rpb25lbiB1bmQgUm9sbGVuLVplaWxl +biBhbmxlZ2VuLCBiZWFyYmVpdGVuLCB1bXNvcnRpZXJlbiwgbG9lc2NoZW4uCiAgIEFyYmVpdGV0 +IGF1ZiBlaW5lciBLb3BpZTsgc3BlaWNoZXJuIHNjaHJlaWJ0IFAuY29udGVudC5yb3N0ZXIgKyBw +ZXJzaXN0LgogICBOdXR6dCBkaWUgZWluaGVpdGxpY2hlIE1vZGFsLUtvbXBvbmVudGUuIFJlb3Jk +ZXIgdWViZXIg4pay4pa8IChkZXRlcm1pbmlzdGlzY2gpCiAgIHBsdXMgRHJhZyZEcm9wIGRlciBa +ZWlsZW4gaW5uZXJoYWxiIGlocmVyIFNla3Rpb24uIEtlaW4gVm9ybGFnZW4tL0thdGFsb2ctCiAg +IFN5c3RlbSAoYmV3dXNzdCksIGtlaW5lIEthbGVuZGVyLgogICA9PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1 +bmN0aW9uIChQKSB7CiAgInVzZSBzdHJpY3QiOwogIHZhciBlbCA9IFAuZWwsIGljID0gUC5pYzsK +CiAgLy8gRmVzdGUgQVBXL1dELUxpc3RlIG1pdCBmZXN0IHp1Z2VvcmRuZXRlbSBSdWZuYW1lbiAo +QmV6ZWljaG51bmcgbmljaHQgZWRpdGllcmJhcikuCiAgLy8gQXVzd2FobCBpbSBQZmxlZ2UtRGlh +bG9nIC0+IHNldHp0IFJvbGxlICsgUnVmbmFtZSAoc3ViID0gIlUgPGNhbGw+IikgYXV0b21hdGlz +Y2guCiAgdmFyIEFQV19PUFRJT05TID0gWwogICAgeyBsYWJlbDogIkFQVyBLYW1lbiIsICAgICAg +IGNhbGw6ICI2MC8yMSIgfSwKICAgIHsgbGFiZWw6ICJBUFcgSGFnZW4iLCAgICAgICBjYWxsOiAi +NjUvMjEiIH0sCiAgICB7IGxhYmVsOiAiQVBXIEJvY2h1bSIsICAgICAgY2FsbDogIjY0LzIxIiB9 +LAogICAgeyBsYWJlbDogIkFQVyBBcm5zYmVyZyIsICAgIGNhbGw6ICI2Mi8yMSIgfSwKICAgIHsg +bGFiZWw6ICJBUFcgRnJldWRlbmJlcmciLCBjYWxsOiAiNjcvMjEiIH0sCiAgICB7IGxhYmVsOiAi +V0QgU29lc3QiLCAgICAgICAgY2FsbDogIjYzLzIxIiB9LAogICAgeyBsYWJlbDogIldEIEzDvGRl +bnNjaGVpZCIsICBjYWxsOiAiNjYvMjEiIH0KICBdOwogIGZ1bmN0aW9uIGFwd0NhbGwobGFiZWwp +IHsgZm9yICh2YXIgaSA9IDA7IGkgPCBBUFdfT1BUSU9OUy5sZW5ndGg7IGkrKykgeyBpZiAoQVBX +X09QVElPTlNbaV0ubGFiZWwgPT09IGxhYmVsKSByZXR1cm4gQVBXX09QVElPTlNbaV0uY2FsbDsg +fSByZXR1cm4gIiI7IH0KICB2YXIgR1JPVVBfT1BUSU9OUyA9IFsiQSIsICJCIiwgIkMiXTsKCiAg +ZnVuY3Rpb24gbW92ZShhcnIsIGksIGRpcikgeyB2YXIgaiA9IGkgKyBkaXI7IGlmIChqIDwgMCB8 +fCBqID49IGFyci5sZW5ndGgpIHJldHVybiBmYWxzZTsgdmFyIHggPSBhcnIuc3BsaWNlKGksIDEp +WzBdOyBhcnIuc3BsaWNlKGosIDAsIHgpOyByZXR1cm4gdHJ1ZTsgfQoKICBQLm9wZW5Sb3N0ZXJF +ZGl0b3IgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIVAubGl2ZSkgeyBQLnRvYXN0KCJCZWFyYmVp +dGVuIG51ciBpbSBQZmxlZ2UtTW9kdXMuIik7IHJldHVybjsgfQogICAgdmFyIFcgPSBQLm5vcm1h +bGl6ZVJvc3RlcihQLmNsb25lKFAuY29udGVudC5yb3N0ZXIgfHwge30pKTsgICAvLyBBcmJlaXRz +a29waWUKICAgIHZhciBob3N0ID0gbnVsbDsKICAgIHZhciBkcmFnUm93ID0gbnVsbDsgICAvLyB7 +IHNlYywgcm93IH0KCiAgICBmdW5jdGlvbiByZXJlbmRlcigpIHsgaWYgKGhvc3QpIHsgaG9zdC5p +bm5lckhUTUwgPSAiIjsgYnVpbGQoaG9zdCk7IH0gfQoKICAgIGZ1bmN0aW9uIHJvd0VsKHNlYywg +cm93LCByaSkgewogICAgICB2YXIgZ3JpcCA9IGVsKCJzcGFuIiwgeyBjbGFzczogIm52LWdyaXAi +LCBodG1sOiAi4ouu4ouuIiwgdGl0bGU6ICJaaWVoZW4genVtIFVtc29ydGllcmVuIiB9KTsKICAg +ICAgdmFyIGZpZWxkczsKICAgICAgaWYgKHJvdy5hcHcpIHsKICAgICAgICAvLyBBUFctQXVzd2Fo +bDogUm9sbGUgcGVyIERyb3Bkb3duLCBSdWZuYW1lIGF1dG9tYXRpc2NoIChuaWNodCBlZGl0aWVy +YmFyKS4KICAgICAgICB2YXIgYXNlbCA9IGVsKCJzZWxlY3QiLCB7IGNsYXNzOiAicmUtcm9sZSBy +ZS1hcHciIH0pOwogICAgICAgIGFzZWwuYXBwZW5kQ2hpbGQoZWwoIm9wdGlvbiIsIHsgdmFsdWU6 +ICIiLCB0ZXh0OiAi4oCTIEFQVyAvIFdEIHfDpGhsZW4g4oCTIiB9KSk7CiAgICAgICAgQVBXX09Q +VElPTlMuZm9yRWFjaChmdW5jdGlvbiAobykgewogICAgICAgICAgdmFyIG9wID0gZWwoIm9wdGlv +biIsIHsgdmFsdWU6IG8ubGFiZWwsIHRleHQ6IG8ubGFiZWwgKyAiICgiICsgby5jYWxsICsgIiki +IH0pOwogICAgICAgICAgaWYgKChyb3cucm9sZSB8fCAiIikgPT09IG8ubGFiZWwpIG9wLnNlbGVj +dGVkID0gdHJ1ZTsKICAgICAgICAgIGFzZWwuYXBwZW5kQ2hpbGQob3ApOwogICAgICAgIH0pOwog +ICAgICAgIGFzZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgZnVuY3Rpb24gKCkgeyByb3cu +cm9sZSA9IGFzZWwudmFsdWU7IHJvdy5zdWIgPSBhc2VsLnZhbHVlID8gKCJVICIgKyBhcHdDYWxs +KGFzZWwudmFsdWUpKSA6ICIiOyByZXJlbmRlcigpOyB9KTsKICAgICAgICB2YXIgY2FsbCA9IGVs +KCJzcGFuIiwgeyBjbGFzczogInJlLXN1YiBtb25vIHJlLWFwdy1jYWxsIiwgdGV4dDogcm93LnN1 +YiB8fCAi4oCUIiwgdGl0bGU6ICJSdWZuYW1lIGF1dG9tYXRpc2NoIChuaWNodCBlZGl0aWVyYmFy +KSIgfSk7CiAgICAgICAgZmllbGRzID0gW2FzZWwsIGNhbGxdOwogICAgICB9IGVsc2UgewogICAg +ICAgIHZhciByb2xlID0gZWwoImlucHV0IiwgeyB0eXBlOiAidGV4dCIsIGNsYXNzOiAicmUtcm9s +ZSIsIHZhbHVlOiByb3cucm9sZSB8fCAiIiwgcGxhY2Vob2xkZXI6ICJGdW5rdGlvbiAvIFJvbGxl +IiwKICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgcm93LnJvbGUgPSB0aGlzLnZhbHVl +OyB9IH0pOwogICAgICAgIHZhciBzdWIgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xh +c3M6ICJyZS1zdWIgbW9ubyIsIHZhbHVlOiByb3cuc3ViIHx8ICIiLCBwbGFjZWhvbGRlcjogIlp1 +c2F0eiAob3B0aW9uYWwpIiwKICAgICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgcm93LnN1 +YiA9IHRoaXMudmFsdWU7IH0gfSk7CiAgICAgICAgZmllbGRzID0gW3JvbGUsIHN1Yl07CiAgICAg +IH0KICAgICAgdmFyIG5hbWUgPSBlbCgiaW5wdXQiLCB7IHR5cGU6ICJ0ZXh0IiwgY2xhc3M6ICJy +ZS1uYW1lIiwgdmFsdWU6IHJvdy5uYW1lIHx8ICIiLCBwbGFjZWhvbGRlcjogIk5hbWUiLAogICAg +ICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgcm93Lm5hbWUgPSB0aGlzLnZhbHVlOyB9IH0pOwog +ICAgICB2YXIgYWN0cyA9IGVsKCJzcGFuIiwgeyBjbGFzczogInJlLWFjdHMiIH0pOwogICAgICBh +Y3RzLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSByZS1hcHctdG9n +IiArIChyb3cuYXB3ID8gIiBvbiIgOiAiIiksIHRpdGxlOiByb3cuYXB3ID8gIkFQVy1BdXN3YWhs +IGF1cyAoZnJlaWVzIEZlbGQpIiA6ICJBbHMgQVBXLS9XRC1BdXN3YWhsIChEcm9wZG93bikiLCB0 +ZXh0OiAiQVBXIiwKICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHJvdy5hcHcgPSAhcm93 +LmFwdzsgaWYgKHJvdy5hcHcgJiYgIWFwd0NhbGwocm93LnJvbGUpKSB7IHJvdy5yb2xlID0gIiI7 +IHJvdy5zdWIgPSAiIjsgfSByZXJlbmRlcigpOyB9IH0pKTsKICAgICAgYWN0cy5hcHBlbmRDaGls +ZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmkiLCB0aXRsZTogImhvY2giLCB0ZXh0OiAi +4payIiwgb25jbGljazogZnVuY3Rpb24gKCkgeyBpZiAobW92ZShzZWMucm93cywgcmksIC0xKSkg +cmVyZW5kZXIoKTsgfSB9KSk7CiAgICAgIGFjdHMuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsg +Y2xhc3M6ICJudi1taW5pIiwgdGl0bGU6ICJydW50ZXIiLCB0ZXh0OiAi4pa8Iiwgb25jbGljazog +ZnVuY3Rpb24gKCkgeyBpZiAobW92ZShzZWMucm93cywgcmksIDEpKSByZXJlbmRlcigpOyB9IH0p +KTsKICAgICAgYWN0cy5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFzczogIm52LW1pbmki +LCB0aXRsZTogIlplaWxlIGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksIG9uY2xpY2s6IGZ1 +bmN0aW9uICgpIHsgc2VjLnJvd3Muc3BsaWNlKHJpLCAxKTsgcmVyZW5kZXIoKTsgfSB9KSk7Cgog +ICAgICB2YXIgciA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtcm93IiwgZHJhZ2dhYmxlOiAidHJ1 +ZSIgfSwgW2dyaXBdLmNvbmNhdChmaWVsZHMsIFtuYW1lLCBhY3RzXSkpOwogICAgICByLmFkZEV2 +ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIGZ1bmN0aW9uIChlKSB7IGRyYWdSb3cgPSB7IHNlYzog +c2VjLCByb3c6IHJvdyB9OyByLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIik7IHRyeSB7IGUuZGF0 +YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLCAiIik7IH0gY2F0Y2ggKF8pIHt9IH0pOwog +ICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLCBmdW5jdGlvbiAoKSB7IGRyYWdSb3cg +PSBudWxsOyByLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7IFAuJCQoIi5yZS1yb3cuZHJv +cC1iZWZvcmUsLnJlLXJvdy5kcm9wLWFmdGVyIikuZm9yRWFjaChmdW5jdGlvbiAobikgeyBuLmNs +YXNzTGlzdC5yZW1vdmUoImRyb3AtYmVmb3JlIiwgImRyb3AtYWZ0ZXIiKTsgfSk7IH0pOwogICAg +ICByLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24gKGUpIHsgaWYgKCFkcmFn +Um93IHx8IGRyYWdSb3cuc2VjICE9PSBzZWMpIHJldHVybjsgZS5wcmV2ZW50RGVmYXVsdCgpOyB2 +YXIgcmVjdCA9IHIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IHZhciBiZWZvcmUgPSAoZS5jbGll +bnRZIC0gcmVjdC50b3ApIDwgcmVjdC5oZWlnaHQgLyAyOyByLmNsYXNzTGlzdC50b2dnbGUoImRy +b3AtYmVmb3JlIiwgYmVmb3JlKTsgci5jbGFzc0xpc3QudG9nZ2xlKCJkcm9wLWFmdGVyIiwgIWJl +Zm9yZSk7IH0pOwogICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIGZ1bmN0aW9u +ICgpIHsgci5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wLWJlZm9yZSIsICJkcm9wLWFmdGVyIik7IH0p +OwogICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAoZSkgeyBpZiAoIWRy +YWdSb3cgfHwgZHJhZ1Jvdy5zZWMgIT09IHNlYykgcmV0dXJuOyBlLnByZXZlbnREZWZhdWx0KCk7 +IHZhciByZWN0ID0gci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgdmFyIGJlZm9yZSA9IChlLmNs +aWVudFkgLSByZWN0LnRvcCkgPCByZWN0LmhlaWdodCAvIDI7IHZhciBmcm9tID0gc2VjLnJvd3Mu +aW5kZXhPZihkcmFnUm93LnJvdyk7IGlmIChmcm9tIDwgMCkgcmV0dXJuOyBzZWMucm93cy5zcGxp +Y2UoZnJvbSwgMSk7IHZhciB0byA9IHNlYy5yb3dzLmluZGV4T2Yocm93KTsgc2VjLnJvd3Muc3Bs +aWNlKHRvICsgKGJlZm9yZSA/IDAgOiAxKSwgMCwgZHJhZ1Jvdy5yb3cpOyByZXJlbmRlcigpOyB9 +KTsKICAgICAgcmV0dXJuIHI7CiAgICB9CgogICAgZnVuY3Rpb24gc2VjRWwoZywgc2VjLCBzaSkg +ewogICAgICB2YXIgaGVhZCA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtc2VjLWhlYWQiIH0pOwog +ICAgICBoZWFkLmFwcGVuZENoaWxkKGVsKCJpbnB1dCIsIHsgdHlwZTogInRleHQiLCBjbGFzczog +InJlLXNlYy10aXRsZSIsIHZhbHVlOiBzZWMudGl0bGUgfHwgIiIsIHBsYWNlaG9sZGVyOiAiQWJz +Y2huaXR0IChvcHRpb25hbCkiLAogICAgICAgIG9uaW5wdXQ6IGZ1bmN0aW9uICgpIHsgc2VjLnRp +dGxlID0gdGhpcy52YWx1ZTsgfSB9KSk7CiAgICAgIHZhciBzYSA9IGVsKCJzcGFuIiwgeyBjbGFz +czogInJlLWFjdHMiIH0pOwogICAgICBzYS5hcHBlbmRDaGlsZChlbCgiYnV0dG9uIiwgeyBjbGFz +czogIm52LW1pbmkiLCB0aXRsZTogIkFic2Nobml0dCBob2NoIiwgdGV4dDogIuKWsiIsIG9uY2xp +Y2s6IGZ1bmN0aW9uICgpIHsgaWYgKG1vdmUoZy5zZWN0aW9ucywgc2ksIC0xKSkgcmVyZW5kZXIo +KTsgfSB9KSk7CiAgICAgIHNhLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYt +bWluaSIsIHRpdGxlOiAiQWJzY2huaXR0IHJ1bnRlciIsIHRleHQ6ICLilrwiLCBvbmNsaWNrOiBm +dW5jdGlvbiAoKSB7IGlmIChtb3ZlKGcuc2VjdGlvbnMsIHNpLCAxKSkgcmVyZW5kZXIoKTsgfSB9 +KSk7CiAgICAgIHNhLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIs +IHRpdGxlOiAiQWJzY2huaXR0IGzDtnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAgICAg +b25jbGljazogZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkb0RlbCgpIHsgZy5zZWN0aW9ucy5zcGxp +Y2Uoc2ksIDEpOyByZXJlbmRlcigpOyB9IGlmICghKHNlYy5yb3dzIHx8IFtdKS5sZW5ndGgpIGRv +RGVsKCk7IGVsc2UgUC5jb25maXJtKCJBYnNjaG5pdHQgbWl0ICIgKyBzZWMucm93cy5sZW5ndGgg +KyAiIFplaWxlKG4pIGzDtnNjaGVuPyIsIGRvRGVsLCB7IGRhbmdlcjogdHJ1ZSB9KTsgfSB9KSk7 +CiAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2EpOwoKICAgICAgdmFyIHJvd3MgPSBlbCgiZGl2Iiwg +eyBjbGFzczogInJlLXJvd3MiIH0pOwogICAgICAoc2VjLnJvd3MgfHwgW10pLmZvckVhY2goZnVu +Y3Rpb24gKHJvdywgcmkpIHsgcm93cy5hcHBlbmRDaGlsZChyb3dFbChzZWMsIHJvdywgcmkpKTsg +fSk7CiAgICAgIHZhciBhZGRSb3cgPSBlbCgiYnV0dG9uIiwgeyBjbGFzczogImJ0biBnaG9zdCBy +ZS1hZGQiLCBodG1sOiBpYygicGx1cyIpICsgIiBaZWlsZSIsCiAgICAgICAgb25jbGljazogZnVu +Y3Rpb24gKCkgeyAoc2VjLnJvd3MgPSBzZWMucm93cyB8fCBbXSkucHVzaCh7IGlkOiBQLnVpZCgi +cnIiKSwgcm9sZTogIiIsIHN1YjogIiIsIG5hbWU6ICIiIH0pOyByZXJlbmRlcigpOyB9IH0pOwog +ICAgICByZXR1cm4gZWwoImRpdiIsIHsgY2xhc3M6ICJyZS1zZWMiIH0sIFtoZWFkLCByb3dzLCBh +ZGRSb3ddKTsKICAgIH0KCiAgICBmdW5jdGlvbiBncm91cEVsKGcsIGdpKSB7CiAgICAgIHZhciBo +ZWFkID0gZWwoImRpdiIsIHsgY2xhc3M6ICJyZS1ncm91cC1oZWFkIiB9KTsKICAgICAgaGVhZC5h +cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJyZS1nbGFiZWwtcHJlIiwgdGV4dDogIkRp +ZW5zdGdydXBwZSIgfSkpOwogICAgICB2YXIgZ3NlbCA9IGVsKCJzZWxlY3QiLCB7IGNsYXNzOiAi +cmUtZ2xhYmVsIG1vbm8iIH0pOwogICAgICB2YXIgb3B0cyA9IEdST1VQX09QVElPTlMuc2xpY2Uo +KTsKICAgICAgaWYgKChnLmxhYmVsIHx8ICIiKSAmJiBvcHRzLmluZGV4T2YoZy5sYWJlbCkgPCAw +KSBvcHRzLnVuc2hpZnQoZy5sYWJlbCk7ICAgLy8gYmVzdGVoZW5kZW4gV2VydCBlcmhhbHRlbgog +ICAgICBvcHRzLmZvckVhY2goZnVuY3Rpb24gKEwpIHsgdmFyIG9wID0gZWwoIm9wdGlvbiIsIHsg +dmFsdWU6IEwsIHRleHQ6IEwgfSk7IGlmICgoZy5sYWJlbCB8fCAiIikgPT09IEwpIG9wLnNlbGVj +dGVkID0gdHJ1ZTsgZ3NlbC5hcHBlbmRDaGlsZChvcCk7IH0pOwogICAgICBnc2VsLmFkZEV2ZW50 +TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgZy5sYWJlbCA9IGdzZWwudmFsdWU7IGlm +IChXLmdyb3Vwc1swXSA9PT0gZykgVy5ncm91cCA9IGcubGFiZWw7IH0pOwogICAgICBoZWFkLmFw +cGVuZENoaWxkKGdzZWwpOwogICAgICB2YXIgZ2EgPSBlbCgic3BhbiIsIHsgY2xhc3M6ICJyZS1h +Y3RzIiB9KTsKICAgICAgZ2EuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1t +aW5pIiwgdGl0bGU6ICJHcnVwcGUgaG9jaCIsIHRleHQ6ICLilrIiLCBvbmNsaWNrOiBmdW5jdGlv +biAoKSB7IGlmIChtb3ZlKFcuZ3JvdXBzLCBnaSwgLTEpKSByZXJlbmRlcigpOyB9IH0pKTsKICAg +ICAgZ2EuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJudi1taW5pIiwgdGl0bGU6 +ICJHcnVwcGUgcnVudGVyIiwgdGV4dDogIuKWvCIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYg +KG1vdmUoVy5ncm91cHMsIGdpLCAxKSkgcmVyZW5kZXIoKTsgfSB9KSk7CiAgICAgIGdhLmFwcGVu +ZENoaWxkKGVsKCJidXR0b24iLCB7IGNsYXNzOiAibnYtbWluaSIsIHRpdGxlOiAiR3J1cHBlIGzD +tnNjaGVuIiwgaHRtbDogaWMoInRyYXNoIiksCiAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkg +eyBpZiAoVy5ncm91cHMubGVuZ3RoIDw9IDEpIHsgUC50b2FzdCgiTWluZGVzdGVucyBlaW5lIEdy +dXBwZSBtdXNzIGJsZWliZW4uIik7IHJldHVybjsgfSBQLmNvbmZpcm0oIlNjaGljaHRncnVwcGUg +4oCeIiArIChnLmxhYmVsIHx8ICIiKSArICLigJwgc2FtdCBBYnNjaG5pdHRlbiBsw7ZzY2hlbj8i +LCBmdW5jdGlvbiAoKSB7IFcuZ3JvdXBzLnNwbGljZShnaSwgMSk7IHJlcmVuZGVyKCk7IH0sIHsg +ZGFuZ2VyOiB0cnVlIH0pOyB9IH0pKTsKICAgICAgaGVhZC5hcHBlbmRDaGlsZChnYSk7CgogICAg +ICB2YXIgc2VjcyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAicmUtc2VjcyIgfSk7CiAgICAgIChnLnNl +Y3Rpb25zIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChzZWMsIHNpKSB7IHNlY3MuYXBwZW5kQ2hp +bGQoc2VjRWwoZywgc2VjLCBzaSkpOyB9KTsKICAgICAgdmFyIGFkZFNlYyA9IGVsKCJidXR0b24i +LCB7IGNsYXNzOiAiYnRuIGdob3N0IHJlLWFkZCIsIGh0bWw6IGljKCJwbHVzIikgKyAiIEFic2No +bml0dCIsCiAgICAgICAgb25jbGljazogZnVuY3Rpb24gKCkgeyAoZy5zZWN0aW9ucyA9IGcuc2Vj +dGlvbnMgfHwgW10pLnB1c2goeyBpZDogUC51aWQoInJzIiksIHRpdGxlOiAiIiwgcm93czogW10g +fSk7IHJlcmVuZGVyKCk7IH0gfSk7CiAgICAgIHJldHVybiBlbCgiZGl2IiwgeyBjbGFzczogInJl +LWdyb3VwIiB9LCBbaGVhZCwgc2VjcywgYWRkU2VjXSk7CiAgICB9CgogICAgZnVuY3Rpb24gYnVp +bGQoYikgewogICAgICBiLmNsYXNzTGlzdC5hZGQoInJlLWJvZHkiKTsKICAgICAgVy5ncm91cHMu +Zm9yRWFjaChmdW5jdGlvbiAoZywgZ2kpIHsgYi5hcHBlbmRDaGlsZChncm91cEVsKGcsIGdpKSk7 +IH0pOwogICAgfQoKICAgIGZ1bmN0aW9uIHNhdmUoKSB7CiAgICAgIC8vIGxlZXJlIFplaWxlbiAo +b2huZSBSb2xsZSB1bmQgTmFtZSkgdmVyd2VyZmVuOyBTdHJ1a3R1ciBub3JtYWxpc2llcmVuLgog +ICAgICBXLmdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uIChnKSB7CiAgICAgICAgKGcuc2VjdGlvbnMg +fHwgW10pLmZvckVhY2goZnVuY3Rpb24gKHMpIHsgcy5yb3dzID0gKHMucm93cyB8fCBbXSkuZmls +dGVyKGZ1bmN0aW9uIChyKSB7IHJldHVybiAoci5yb2xlIHx8ICIiKS50cmltKCkgfHwgKHIubmFt +ZSB8fCAiIikudHJpbSgpOyB9KTsgfSk7CiAgICAgIH0pOwogICAgICBQLmNvbnRlbnQucm9zdGVy +ID0gUC5ub3JtYWxpemVSb3N0ZXIoVyk7CiAgICAgIFAucGVyc2lzdCgpOwogICAgICBpZiAoUC5y +ZW5kZXJQYW5lbHMpIFAucmVuZGVyUGFuZWxzKCk7CiAgICAgIFAudG9hc3QoIkRpZW5zdGdydXBw +ZSBnZXNwZWljaGVydCIgKyAoUC5saXZlID8gIiAmIHZlcsO2ZmZlbnRsaWNodC4iIDogIi4iKSk7 +CiAgICB9CgogICAgUC5tb2RhbCh7CiAgICAgIHRpdGxlOiAiRGllbnN0Z3J1cHBlIGJlYXJiZWl0 +ZW4iLCBpY29uOiAidXNlciIsIHNpemU6ICJsZyIsCiAgICAgIGJvZHk6IGZ1bmN0aW9uIChiKSB7 +IGhvc3QgPSBiOyBidWlsZChiKTsgfSwKICAgICAgYWN0aW9uczogWwogICAgICAgIHsgbGFiZWw6 +ICJHcnVwcGUiLCBraW5kOiAiZ2hvc3QiLCBpY29uOiAicGx1cyIsIGFsaWduOiAibGVmdCIsIGtl +ZXBPcGVuOiB0cnVlLAogICAgICAgICAgb25DbGljazogZnVuY3Rpb24gKCkgeyBXLmdyb3Vwcy5w +dXNoKHsgaWQ6IFAudWlkKCJyZyIpLCBsYWJlbDogIiIsIHNlY3Rpb25zOiBbXSB9KTsgcmVyZW5k +ZXIoKTsgfSB9LAogICAgICAgIHsgbGFiZWw6ICJBYmJyZWNoZW4iLCBraW5kOiAiZ2hvc3QiIH0s +CiAgICAgICAgeyBsYWJlbDogIlNwZWljaGVybiIsIGtpbmQ6ICJwcmltYXJ5Iiwgb25DbGljazog +c2F2ZSB9CiAgICAgIF0KICAgIH0pOwogIH07Cgp9KSh3aW5kb3cuUCk7Cg== +### FILE: assets/js/features/search.js | 13211 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgc2VhcmNoLmpzCiAgIEdsb2JhbGUg +QmVmZWhsc3BhbGV0dGUgKE5hdiArIEFydGlrZWwgKyBNZWxkdW5nZW4gKyBMaW5rcykgdW5kIEHi +gJNaLVJlZ2lzdGVyLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKGZ1bmN0aW9uIChQKSB7CiAgInVzZSBz +dHJpY3QiOwogIHZhciBlbCA9IFAuZWwsICQgPSBQLiQsIGljID0gUC5pYywgZXNjYXBlSHRtbCA9 +IFAuZXNjYXBlSHRtbCwgZGVhY2NlbnQgPSBQLmRlYWNjZW50OwoKICB2YXIgSU5ERVggPSBbXTsK +ICAvLyBJbmRleCBhdXMgYWxsZW4gcmVnaXN0cmllcnRlbiBUeXBlbiBhdWZiYXVlbiAobmF2L3Bh +bmVscyByZWdpc3RyaWVyZW4gc2ljaAogIC8vIGluIGlocmVuIE1vZHVsZW47IFBoYXNlLTYtVHlw +ZW4ga2xpbmtlbiBzaWNoIHVlYmVyIGJ1aWxkSW5kZXgocHVzaCkgZWluKS4KICBQLmJ1aWxkSW5k +ZXggPSBmdW5jdGlvbiAoKSB7CiAgICBJTkRFWCA9IFtdOwogICAgUC5lYWNoVHlwZShmdW5jdGlv +biAodCkgeyBpZiAodC5idWlsZEluZGV4KSB0LmJ1aWxkSW5kZXgoZnVuY3Rpb24gKGUpIHsgSU5E +RVgucHVzaChlKTsgfSk7IH0pOwogICAgaWYgKFAucmVuZGVyQVpSYWlsKSBQLnJlbmRlckFaUmFp +bCgpOwogIH07CgogIC8qIFBlcm1hbmVudGUgQeKAk1otUmVnaXN0ZXJsZWlzdGUgaW0gSGVhZGVy +OiB6ZWlndCBhbGxlIEJ1Y2hzdGFiZW4gQeKAk1osCiAgICAgbGVlcmUgc2luZCBkZWFrdGl2aWVy +dDsgS2xpY2sgb2VmZm5ldCBkYXMgUmVnaXN0ZXIgYW4gZGllc2VyIFN0ZWxsZS4gKi8KICBmdW5j +dGlvbiBhekF2YWlsYWJsZSgpIHsKICAgIHZhciBzZXQgPSB7fTsKICAgIElOREVYLmZvckVhY2go +ZnVuY3Rpb24gKGUpIHsgdmFyIGNoID0gZGVhY2NlbnQoZS5sYWJlbCkuY2hhckF0KDApLnRvVXBw +ZXJDYXNlKCk7IGlmICghL1tBLVpdLy50ZXN0KGNoKSkgY2ggPSAiIyI7IHNldFtjaF0gPSAxOyB9 +KTsKICAgIHJldHVybiBzZXQ7CiAgfQogIFAucmVuZGVyQVpSYWlsID0gZnVuY3Rpb24gKCkgewog +ICAgdmFyIHJhaWwgPSAkKCIjYXotcmFpbCIpOyBpZiAoIXJhaWwpIHJldHVybjsKICAgIHZhciBh +dmFpbCA9IGF6QXZhaWxhYmxlKCk7CiAgICByYWlsLmlubmVySFRNTCA9ICIiOwogICAgIkFCQ0RF +RkdISUpLTE1OT1BRUlNUVVZXWFlaIi5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbiAoTCkgewog +ICAgICByYWlsLmFwcGVuZENoaWxkKGVsKCJidXR0b24iLCB7IHR5cGU6ICJidXR0b24iLCBjbGFz +czogImF6LWxldHRlciIsIGRpc2FibGVkOiBhdmFpbFtMXSA/IG51bGwgOiAiZGlzYWJsZWQiLAog +ICAgICAgIHRpdGxlOiBhdmFpbFtMXSA/ICgiRWludHLDpGdlIHVudGVyIOKAniIgKyBMICsgIuKA +nCIpIDogKCJLZWluZSBFaW50csOkZ2UgdW50ZXIg4oCeIiArIEwgKyAi4oCcIiksCiAgICAgICAg +b25jbGljazogZnVuY3Rpb24gKCkgeyBQLm9wZW5BWkF0KEwpOyB9LCB0ZXh0OiBMIH0pKTsKICAg +IH0pOwogICAgaWYgKGF2YWlsWyIjIl0pIHJhaWwuYXBwZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsg +dHlwZTogImJ1dHRvbiIsIGNsYXNzOiAiYXotbGV0dGVyIiwgdGl0bGU6ICJaaWZmZXJuIC8gU29u +ZGVyemVpY2hlbiIsCiAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5vcGVuQVpBdCgiIyIp +OyB9LCB0ZXh0OiAiIyIgfSkpOwogIH07CiAgUC5vcGVuQVpBdCA9IGZ1bmN0aW9uIChMKSB7IFAu +b3BlbkFaKEwpOyB9OyAgIC8vIEhlYWRlci1CdWNoc3RhYmUgLT4gZ2VmaWx0ZXJ0ZXMgUmVnaXN0 +ZXIKICBmdW5jdGlvbiBzY29yZShsYWJlbCwgbnEpIHsgdmFyIGwgPSBkZWFjY2VudChsYWJlbCk7 +IHJldHVybiBsID09PSBucSA/IDAgOiBsLmluZGV4T2YobnEpID09PSAwID8gMSA6IGwuaW5kZXhP +ZihucSkgPiAwID8gMiA6IDM7IH0KICAvLyBFZGl0LURpc3RhbnogPD0gMSAoVGlwcGZlaGxlci1U +b2xlcmFueiwgUGhhc2UgOCkuCiAgZnVuY3Rpb24gbGV2MShhLCBiKSB7CiAgICBpZiAoYSA9PT0g +YikgcmV0dXJuIHRydWU7CiAgICB2YXIgbGEgPSBhLmxlbmd0aCwgbGIgPSBiLmxlbmd0aDsgaWYg +KE1hdGguYWJzKGxhIC0gbGIpID4gMSkgcmV0dXJuIGZhbHNlOwogICAgdmFyIGkgPSAwLCBqID0g +MCwgZWRpdHMgPSAwOwogICAgd2hpbGUgKGkgPCBsYSAmJiBqIDwgbGIpIHsKICAgICAgaWYgKGEu +Y2hhckF0KGkpID09PSBiLmNoYXJBdChqKSkgeyBpKys7IGorKzsgfQogICAgICBlbHNlIHsgaWYg +KCsrZWRpdHMgPiAxKSByZXR1cm4gZmFsc2U7IGlmIChsYSA+IGxiKSBpKys7IGVsc2UgaWYgKGxi +ID4gbGEpIGorKzsgZWxzZSB7IGkrKzsgaisrOyB9IH0KICAgIH0KICAgIGlmIChpIDwgbGEgfHwg +aiA8IGxiKSBlZGl0cysrOwogICAgcmV0dXJuIGVkaXRzIDw9IDE7CiAgfQogIGZ1bmN0aW9uIHRv +a2VuSGl0KGUsIHQpIHsKICAgIGlmIChlLmhheS5pbmRleE9mKHQpID49IDApIHJldHVybiB0cnVl +OwogICAgaWYgKHQubGVuZ3RoIDwgNCkgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgICAgICAg +Ly8gRnV6enkgbnVyIGZ1ZXIgbGFlbmdlcmUgVG9rZW5zCiAgICB2YXIgd3MgPSBlLl93IHx8IChl +Ll93ID0gZS5oYXkuc3BsaXQoL1teYS16MC05XSsvKSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8 +IHdzLmxlbmd0aDsgaSsrKSB7IGlmICh3c1tpXS5sZW5ndGggPj0gMyAmJiBsZXYxKHdzW2ldLCB0 +KSkgcmV0dXJuIHRydWU7IH0KICAgIHJldHVybiBmYWxzZTsKICB9CiAgZnVuY3Rpb24gc2VhcmNo +QWxsKHEpIHsKICAgIHZhciBucSA9IGRlYWNjZW50KHEpLnRyaW0oKTsgaWYgKCFucSkgcmV0dXJu +IHsgZG9jczogW10sIGJ1bGxzOiBbXSB9OwogICAgdmFyIHRva3MgPSBucS5zcGxpdCgvXHMrLyk7 +CiAgICB2YXIgZG9jcyA9IElOREVYLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gdG9rcy5l +dmVyeShmdW5jdGlvbiAodCkgeyByZXR1cm4gdG9rZW5IaXQoZSwgdCk7IH0pOyB9KTsKICAgIC8v +IFJhbmtpbmc6IGV4YWt0ZS9TdWJzdHJpbmctVHJlZmZlciB2b3IgcmVpbmVuIEZ1enp5LVRyZWZm +ZXJuLgogICAgZG9jcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgIHZhciBmYSA9IGEuaGF5 +LmluZGV4T2YobnEpID49IDAgPyAwIDogNCwgZmIgPSBiLmhheS5pbmRleE9mKG5xKSA+PSAwID8g +MCA6IDQ7CiAgICAgIHJldHVybiAoc2NvcmUoYS5sYWJlbCwgbnEpICsgZmEpIC0gKHNjb3JlKGIu +bGFiZWwsIG5xKSArIGZiKSB8fCBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCk7CiAgICB9 +KTsKICAgIHZhciBidCA9IFAudHlwZUJ5S2V5KCJidWxsZXRpbiIpOwogICAgdmFyIGJ1bGxzID0g +YnQgJiYgYnQuc2VhcmNoTGl2ZSA/IGJ0LnNlYXJjaExpdmUodG9rcywgbnEpIDogW107CiAgICB2 +YXIgY21kcyA9IFAuc2VhcmNoQ29tbWFuZHMgPyBQLnNlYXJjaENvbW1hbmRzKHRva3MsIG5xKSA6 +IFtdOwogICAgcmV0dXJuIHsgZG9jczogZG9jcy5zbGljZSgwLCBQLm1vZCgic2VhcmNoLmRvY0xp +bWl0IikpLCBidWxsczogYnVsbHMuc2xpY2UoMCwgUC5tb2QoInNlYXJjaC5idWxsTGltaXQiKSks +IGNtZHM6IGNtZHMuc2xpY2UoMCwgUC5tb2QoInNlYXJjaC5jbWRMaW1pdCIpKSB9OwogIH0KCiAg +dmFyIGNtZFNlbCA9IC0xLCBjbWRGbGF0ID0gW10sIHNjb3BlID0gImFsbCIsIGxhc3RRID0gIiI7 +CiAgZnVuY3Rpb24gY2hpcHMoYm94LCByKSB7CiAgICB2YXIgbmMgPSAoci5jbWRzIHx8IFtdKS5s +ZW5ndGg7CiAgICB2YXIgZGVmcyA9IFtbImFsbCIsIFAudCgic2VhcmNoLnNjb3BlQWxsIiksIG5j +ICsgci5idWxscy5sZW5ndGggKyByLmRvY3MubGVuZ3RoXSwgWyJjbWQiLCBQLnQoInNlYXJjaC5z +Y29wZUNtZCIpLCBuY10sIFsiYnVsbCIsIFAudCgic2VhcmNoLnNjb3BlQnVsbCIpLCByLmJ1bGxz +Lmxlbmd0aF0sIFsiZG9jIiwgUC50KCJzZWFyY2guc2NvcGVEb2MiKSwgci5kb2NzLmxlbmd0aF1d +OwogICAgdmFyIHJvdyA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY21kLXNjb3BlcyIsIHJvbGU6ICJ0 +YWJsaXN0IiB9KTsKICAgIGRlZnMuZm9yRWFjaChmdW5jdGlvbiAoZCkgewogICAgICByb3cuYXBw +ZW5kQ2hpbGQoZWwoImJ1dHRvbiIsIHsgY2xhc3M6ICJjbWQtc2NvcGUiICsgKHNjb3BlID09PSBk +WzBdID8gIiBzZWwiIDogIiIpLCByb2xlOiAidGFiIiwgImFyaWEtcHJlc3NlZCI6IHNjb3BlID09 +PSBkWzBdID8gInRydWUiIDogImZhbHNlIiwKICAgICAgICB0ZXh0OiBkWzFdICsgIiAoIiArIGRb +Ml0gKyAiKSIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgc2NvcGUgPSBkWzBdOyBQLnJlbmRlclJl +c3VsdHMobGFzdFEpOyB9IH0pKTsKICAgIH0pOwogICAgYm94LmFwcGVuZENoaWxkKHJvdyk7CiAg +fQogIGZ1bmN0aW9uIHJ1bkNtZChjKSB7IFAuY2xlYXJTZWFyY2goKTsgdmFyIGkgPSAkKCIjc2Vh +cmNoLWlucHV0Iik7IGlmIChpKSBpLmJsdXIoKTsgaWYgKGMgJiYgYy5ydW4pIGMucnVuKCk7IH0K +ICBmdW5jdGlvbiByZW5kZXJDbWRzKGJveCwgY21kcykgewogICAgYm94LmFwcGVuZENoaWxkKGVs +KCJkaXYiLCB7IGNsYXNzOiAiY21kLWNhdCIsIHRleHQ6ICJCZWZlaGxlIiB9KSk7CiAgICBjbWRz +LmZvckVhY2goZnVuY3Rpb24gKGMpIHsKICAgICAgdmFyIGl0ZW0gPSBlbCgiZGl2IiwgeyBjbGFz +czogImNtZC1pdGVtIiwgb25tb3VzZWRvd246IGZ1bmN0aW9uIChldikgeyBldi5wcmV2ZW50RGVm +YXVsdCgpOyB9LCBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7IHJ1bkNtZChjKTsgfSwKICAgICAgICBo +dG1sOiAnPHNwYW4gY2xhc3M9ImNpLWljbyI+JyArIGljKGMuaWNvbiB8fCAiYm9sdCIpICsgIjwv +c3Bhbj4iIH0pOwogICAgICB2YXIgbWFpbiA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY2ktbWFpbiIg +fSk7CiAgICAgIG1haW4uYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJjaS1sYWJlbCIs +IHRleHQ6IGMubGFiZWwgfSkpOwogICAgICBpZiAoYy5oaW50KSBtYWluLmFwcGVuZENoaWxkKGVs +KCJkaXYiLCB7IGNsYXNzOiAiY2ktcGF0aCIsIHRleHQ6IGMuaGludCB9KSk7CiAgICAgIGl0ZW0u +YXBwZW5kQ2hpbGQobWFpbik7CiAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCB7IGNs +YXNzOiAiY2kta2luZCIsIHRleHQ6ICJCZWZlaGwiIH0pKTsKICAgICAgYm94LmFwcGVuZENoaWxk +KGl0ZW0pOyBjbWRGbGF0LnB1c2goeyBraW5kOiAiY21kIiwgcnVuOiBjLnJ1biB9KTsKICAgIH0p +OwogIH0KICBQLnJlbmRlclJlc3VsdHMgPSBmdW5jdGlvbiAocSkgewogICAgdmFyIGJveCA9ICQo +IiNjbWQtcmVzdWx0cyIpOwogICAgY21kRmxhdCA9IFtdOyBjbWRTZWwgPSAtMTsKICAgIGlmICgh +cS50cmltKCkpIHsKICAgICAgLy8gTGVlcnp1c3RhbmQgPSBQYWxldHRlIG1pdCBkZW4gd2ljaHRp +Z3N0ZW4gQmVmZWhsZW4uCiAgICAgIHZhciB0b3AgPSBQLnRvcENvbW1hbmRzID8gUC50b3BDb21t +YW5kcygpIDogW107CiAgICAgIGJveC5pbm5lckhUTUwgPSAiIjsKICAgICAgaWYgKCF0b3AubGVu +Z3RoKSB7IGJveC5oaWRkZW4gPSB0cnVlOyByZXR1cm47IH0KICAgICAgcmVuZGVyQ21kcyhib3gs +IHRvcCk7CiAgICAgIGJveC5oaWRkZW4gPSBmYWxzZTsgcmV0dXJuOwogICAgfQogICAgbGFzdFEg +PSBxOwogICAgdmFyIHIgPSBzZWFyY2hBbGwocSk7IGJveC5pbm5lckhUTUwgPSAiIjsKICAgIHZh +ciBuYyA9IChyLmNtZHMgfHwgW10pLmxlbmd0aDsKICAgIGlmICghci5kb2NzLmxlbmd0aCAmJiAh +ci5idWxscy5sZW5ndGggJiYgIW5jKSB7IGJveC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz +czogImNtZC1lbXB0eSIsIHRleHQ6ICJLZWluZSBUcmVmZmVyIGbDvHIg4oCeIiArIHEgKyAi4oCc +IiB9KSk7IGJveC5oaWRkZW4gPSBmYWxzZTsgcmV0dXJuOyB9CiAgICBjaGlwcyhib3gsIHIpOwog +ICAgaWYgKHNjb3BlID09PSAiY21kIikgciA9IHsgZG9jczogW10sIGJ1bGxzOiBbXSwgY21kczog +ci5jbWRzIH07CiAgICBlbHNlIGlmIChzY29wZSA9PT0gImRvYyIpIHIgPSB7IGRvY3M6IHIuZG9j +cywgYnVsbHM6IFtdLCBjbWRzOiBbXSB9OwogICAgZWxzZSBpZiAoc2NvcGUgPT09ICJidWxsIikg +ciA9IHsgZG9jczogW10sIGJ1bGxzOiByLmJ1bGxzLCBjbWRzOiBbXSB9OwogICAgaWYgKHIuY21k +cyAmJiByLmNtZHMubGVuZ3RoKSByZW5kZXJDbWRzKGJveCwgci5jbWRzKTsKICAgIGlmIChyLmJ1 +bGxzLmxlbmd0aCkgewogICAgICBib3guYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJj +bWQtY2F0IiwgdGV4dDogIk1lbGR1bmdlbiIgfSkpOwogICAgICByLmJ1bGxzLmZvckVhY2goZnVu +Y3Rpb24gKGIpIHsKICAgICAgICB2YXIgaXRlbSA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY21kLWl0 +ZW0iLCBvbm1vdXNlZG93bjogZnVuY3Rpb24gKGV2KSB7IGV2LnByZXZlbnREZWZhdWx0KCk7IH0s +IG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgUC5mbGFzaEJ1bGxldGluKGIpOyBQLmNsZWFyU2VhcmNo +KCk7IH0sCiAgICAgICAgICBodG1sOiAnPHNwYW4gY2xhc3M9ImNpLWljbyI+JyArIGljKCJhbGVy +dCIpICsgJzwvc3Bhbj4nIH0pOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsg +Y2xhc3M6ICJjaS1tYWluIiwgaHRtbDogJzxkaXYgY2xhc3M9ImNpLWxhYmVsIj4nICsgZXNjYXBl +SHRtbChiLnRpdGxlKSArICc8L2Rpdj48ZGl2IGNsYXNzPSJjaS1wYXRoIj4nICsgZXNjYXBlSHRt +bChQLmZtdERhdGUoYi5kYXRlKSArIChiLmF1dGhvciA/ICIgwrcgIiArIGIuYXV0aG9yIDogIiIp +KSArICI8L2Rpdj4iIH0pKTsKICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBj +bGFzczogImNpLWtpbmQiLCB0ZXh0OiAiTWVsZHVuZyIgfSkpOwogICAgICAgIGJveC5hcHBlbmRD +aGlsZChpdGVtKTsgY21kRmxhdC5wdXNoKHsga2luZDogImJ1bGwiLCBiOiBiIH0pOwogICAgICB9 +KTsKICAgIH0KICAgIGlmIChyLmRvY3MubGVuZ3RoKSB7CiAgICAgIGJveC5hcHBlbmRDaGlsZChl +bCgiZGl2IiwgeyBjbGFzczogImNtZC1jYXQiLCB0ZXh0OiAiRG9rdW1lbnRlLCBBcnRpa2VsICYg +TGlua3MiIH0pKTsKICAgICAgci5kb2NzLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICB2 +YXIgaXRlbSA9IGVsKCJkaXYiLCB7IGNsYXNzOiAiY21kLWl0ZW0iLCBvbm1vdXNlZG93bjogZnVu +Y3Rpb24gKGV2KSB7IGV2LnByZXZlbnREZWZhdWx0KCk7IH0sIG9uY2xpY2s6IGZ1bmN0aW9uICgp +IHsgUC5uYXZpZ2F0ZShlLml0KTsgUC5jbGVhclNlYXJjaCgpOyB9LAogICAgICAgICAgaHRtbDog +JzxzcGFuIGNsYXNzPSJjaS1pY28iPicgKyBpYyhlLmljb24gfHwgImRvYyIpICsgIjwvc3Bhbj4i +IH0pOwogICAgICAgIHZhciBtYWluID0gZWwoImRpdiIsIHsgY2xhc3M6ICJjaS1tYWluIiB9KTsK +ICAgICAgICBtYWluLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNsYXNzOiAiY2ktbGFiZWwiLCB0 +ZXh0OiBlLmxhYmVsIH0pKTsKICAgICAgICBtYWluLmFwcGVuZENoaWxkKGVsKCJkaXYiLCB7IGNs +YXNzOiAiY2ktcGF0aCIsIHRleHQ6IGUucGF0aCB9KSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGls +ZChtYWluKTsKICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwgeyBjbGFzczogImNp +LWtpbmQiLCB0ZXh0OiBlLmtpbmQgfSkpOwogICAgICAgIGlmIChlLml0LmJyb2tlbikgaXRlbS5h +cHBlbmRDaGlsZChlbCgic3BhbiIsIHsgY2xhc3M6ICJiYWRnZSBicm9rZW4iLCB0ZXh0OiAiZmVo +bHQiIH0pKTsKICAgICAgICBib3guYXBwZW5kQ2hpbGQoaXRlbSk7IGNtZEZsYXQucHVzaCh7IGtp +bmQ6ICJuYXYiLCBpdDogZS5pdCB9KTsKICAgICAgfSk7CiAgICB9CiAgICBib3guaGlkZGVuID0g +ZmFsc2U7CiAgfTsKICBQLm1vdmVTZWwgPSBmdW5jdGlvbiAoZCkgewogICAgdmFyIGl0ZW1zID0g +UC4kJCgiI2NtZC1yZXN1bHRzIC5jbWQtaXRlbSIpOyBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJu +OwogICAgaWYgKGNtZFNlbCA+PSAwICYmIGl0ZW1zW2NtZFNlbF0pIGl0ZW1zW2NtZFNlbF0uY2xh +c3NMaXN0LnJlbW92ZSgic2VsIik7CiAgICBjbWRTZWwgPSAoY21kU2VsICsgZCArIGl0ZW1zLmxl +bmd0aCkgJSBpdGVtcy5sZW5ndGg7CiAgICBpdGVtc1tjbWRTZWxdLmNsYXNzTGlzdC5hZGQoInNl +bCIpOyBpdGVtc1tjbWRTZWxdLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICJuZWFyZXN0IiB9KTsK +ICB9OwogIFAuYWN0aXZhdGVTZWwgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAoY21kU2VsIDwgMCB8 +fCAhY21kRmxhdFtjbWRTZWxdKSB7IGlmICghY21kRmxhdFswXSkgcmV0dXJuOyBjbWRTZWwgPSAw +OyB9CiAgICB2YXIgc2VsID0gY21kRmxhdFtjbWRTZWxdOwogICAgaWYgKHNlbC5raW5kID09PSAi +Y21kIikgeyBydW5DbWQoeyBydW46IHNlbC5ydW4gfSk7IHJldHVybjsgfSAgIC8vIGNsZWFyU2Vh +cmNoIHBhc3NpZXJ0IGluIHJ1bkNtZAogICAgaWYgKHNlbC5raW5kID09PSAiYnVsbCIpIFAuZmxh +c2hCdWxsZXRpbihzZWwuYik7IGVsc2UgUC5uYXZpZ2F0ZShzZWwuaXQpOwogICAgUC5jbGVhclNl +YXJjaCgpOyAkKCIjc2VhcmNoLWlucHV0IikuYmx1cigpOwogIH07CiAgUC5jbGVhclNlYXJjaCA9 +IGZ1bmN0aW9uICgpIHsgJCgiI3NlYXJjaC1pbnB1dCIpLnZhbHVlID0gIiI7ICQoIiNjbWQtcmVz +dWx0cyIpLmhpZGRlbiA9IHRydWU7IGNtZEZsYXQgPSBbXTsgY21kU2VsID0gLTE7IHNjb3BlID0g +ImFsbCI7IH07CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tIEHigJNaLVJlZ2lzdGVyICovCiAgdmFyIGF6R3JvdXBzID0ge307 +CiAgLy8gZmlsdGVyID0gZWluemVsbmVyIEJ1Y2hzdGFiZSAoQeKAk1ogb2RlciAjKSAtPiBudXIg +ZGVzc2VuIEVpbnRyYWVnZTsgbGVlciA9IGFsbGUuCiAgUC5vcGVuQVogPSBmdW5jdGlvbiAoZmls +dGVyKSB7CiAgICBhekdyb3VwcyA9IHt9OwogICAgSU5ERVguZm9yRWFjaChmdW5jdGlvbiAoZSkg +eyB2YXIgY2ggPSBkZWFjY2VudChlLmxhYmVsKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTsgaWYg +KCEvW0EtWl0vLnRlc3QoY2gpKSBjaCA9ICIjIjsgKGF6R3JvdXBzW2NoXSA9IGF6R3JvdXBzW2No +XSB8fCBbXSkucHVzaChlKTsgfSk7CiAgICBPYmplY3Qua2V5cyhhekdyb3VwcykuZm9yRWFjaChm +dW5jdGlvbiAoaykgeyBhekdyb3Vwc1trXS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBh +LmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCk7IH0pOyB9KTsKICAgIHZhciBmID0gKGZpbHRl +ciAmJiBhekdyb3Vwc1tmaWx0ZXJdKSA/IGZpbHRlciA6IG51bGw7ICAgLy8gbnVyIGd1ZWx0aWdl +IEJ1Y2hzdGFiZW4gbWl0IEVpbnRyYWVnZW4KICAgIHZhciBzdHJpcCA9ICQoIiNhei1zdHJpcCIp +OyBzdHJpcC5pbm5lckhUTUwgPSAiIjsKICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiMi +LnNwbGl0KCIiKS5mb3JFYWNoKGZ1bmN0aW9uIChMKSB7CiAgICAgIHN0cmlwLmFwcGVuZENoaWxk +KGVsKCJidXR0b24iLCB7IGNsYXNzOiAiYXota2V5IiArIChmID09PSBMID8gIiBhY3RpdmUiIDog +IiIpLCBkaXNhYmxlZDogYXpHcm91cHNbTF0gPyBudWxsIDogImRpc2FibGVkIiwKICAgICAgICB0 +aXRsZTogIk51ciDigJ4iICsgTCArICLigJwgYW56ZWlnZW4iLAogICAgICAgIG9uY2xpY2s6IGZ1 +bmN0aW9uICgpIHsgUC5vcGVuQVooZiA9PT0gTCA/IG51bGwgOiBMKTsgfSwgdGV4dDogTCB9KSk7 +ICAgLy8gZXJuZXV0ZXIgS2xpY2sgYXVmIGFrdGl2ZW4gQnVjaHN0YWJlbiA9IGFsbGUKICAgIH0p +OwogICAgdmFyIGJvZHkgPSAkKCIjYXotYm9keSIpOyBib2R5LmlubmVySFRNTCA9ICIiOyB2YXIg +dG90YWwgPSAwLCBzaG93biA9IDA7CiAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVojIi5z +cGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbiAoTCkgewogICAgICBpZiAoIWF6R3JvdXBzW0xdKSBy +ZXR1cm47CiAgICAgIHRvdGFsICs9IGF6R3JvdXBzW0xdLmxlbmd0aDsKICAgICAgaWYgKGYgJiYg +TCAhPT0gZikgcmV0dXJuOyAgIC8vIGltIEZpbHRlcm1vZHVzIG51ciBkZW4gZ2V3YWVobHRlbiBC +dWNoc3RhYmVuIHJlbmRlcm4KICAgICAgYm9keS5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFz +czogImF6LWxldHRlci1oIiwgaWQ6ICJhei1oLSIgKyBMLCB0ZXh0OiBMIH0pKTsKICAgICAgYXpH +cm91cHNbTF0uZm9yRWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgIHNob3duKys7CiAgICAgICAg +dmFyIGEgPSBlbCgiYSIsIHsgY2xhc3M6ICJhei1saW5rIiwgaHJlZjogZS5pdC5ocmVmIHx8ICIj +IiwKICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChldikgeyBldi5wcmV2ZW50RGVmYXVsdCgp +OyBQLm5hdmlnYXRlKGUuaXQpOyBQLmNsb3NlQVooKTsgfSwgdGV4dDogZS5sYWJlbCB9KTsKICAg +ICAgICAvLyBJbSBQZmxlZ2UtTW9kdXM6IGplIFR5cCBkZXJzZWxiZSBFZGl0b3Igd2llIGluIGRl +ciBTZWl0ZW5sZWlzdGUg4oCUIEFydGlrZWwgLT4gQXJ0aWtlbC1FZGl0b3IsCiAgICAgICAgLy8g +TGluay9PcmRuZXIgLT4gS25vdGVuLUVkaXRvciAoWmllbCDCtyBpbnRlcm4vZXh0ZXJuIMK3IE9l +ZmZuZW4tTW9kdXMgwrcgSWNvbikuCiAgICAgICAgaWYgKFAubGl2ZSAmJiAoUC5lZGl0Tm9kZURs +ZyB8fCBQLm9wZW5BcnRpY2xlRGxnKSkgewogICAgICAgICAgdmFyIGVkaXQgPSBlbCgiYnV0dG9u +IiwgeyB0eXBlOiAiYnV0dG9uIiwgY2xhc3M6ICJhei1lZGl0IiwKICAgICAgICAgICAgdGl0bGU6 +IGUuaXQuYXJ0aWNsZSA/ICJBcnRpa2VsIGJlYXJiZWl0ZW4iIDogIkVpbnRyYWcgYmVhcmJlaXRl +biAoWmllbCDCtyBpbnRlcm4vZXh0ZXJuIMK3IMOWZmZuZW4tTW9kdXMpIiwgaHRtbDogaWMoImVk +aXQiKSwKICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKGV2KSB7CiAgICAgICAgICAgICAg +ZXYucHJldmVudERlZmF1bHQoKTsgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAg +aWYgKGUuaXQuYXJ0aWNsZSAmJiBQLm9wZW5BcnRpY2xlRGxnKSB7IFAub3BlbkFydGljbGVEbGco +ZS5pdCk7IH0KICAgICAgICAgICAgICBlbHNlIGlmIChQLmVkaXROb2RlRGxnKSB7IFAuZWRpdE5v +ZGVEbGcoZS5pdCwgZnVuY3Rpb24gKCkgeyBQLm9wZW5BWihmKTsgfSk7IH0KICAgICAgICAgICAg +fSB9KTsKICAgICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoZWwoImRpdiIsIHsgY2xhc3M6ICJhei1y +b3ciIH0sIFthLCBlZGl0XSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBib2R5LmFwcGVu +ZENoaWxkKGEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICAgICQoIiNhei1jb3VudCIp +LnRleHRDb250ZW50ID0gZiA/IChzaG93biArICIgRWludHLDpGdlIMK3IOKAniIgKyBmICsgIuKA +nCIpIDogKHRvdGFsICsgIiBFaW50csOkZ2UiKTsKICAgICQoIiNhei1vdmVybGF5IikuY2xhc3NM +aXN0LmFkZCgib3BlbiIpOwogICAgaWYgKCFhektleUgpIHsgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgLy8gbnVyIGJlaW0gRVJTVEVOIMOWZmZuZW4gKG9wZW5BWiB3aXJkIGJlaW0g +RmlsdGVybiBlcm5ldXQgYXVmZ2VydWZlbikKICAgICAgYXpQcmV2Rm9jdXMgPSBkb2N1bWVudC5h +Y3RpdmVFbGVtZW50OwogICAgICBhektleUggPSBhelRyYXA7IGRvY3VtZW50LmFkZEV2ZW50TGlz +dGVuZXIoImtleWRvd24iLCBhektleUgsIHRydWUpOwogICAgICB2YXIgY2wgPSAkKCIjYXotY2xv +c2UiKTsgaWYgKGNsKSBjbC5mb2N1cygpOwogICAgfQogIH07CiAgUC5jbG9zZUFaID0gZnVuY3Rp +b24gKCkgewogICAgJCgiI2F6LW92ZXJsYXkiKS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIik7CiAg +ICBpZiAoYXpLZXlIKSB7IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBh +ektleUgsIHRydWUpOyBhektleUggPSBudWxsOyB9CiAgICBpZiAoYXpQcmV2Rm9jdXMgJiYgYXpQ +cmV2Rm9jdXMuZm9jdXMpIHsgdHJ5IHsgYXpQcmV2Rm9jdXMuZm9jdXMoKTsgfSBjYXRjaCAoZSkg +e30gfQogICAgYXpQcmV2Rm9jdXMgPSBudWxsOwogIH07CiAgLy8gRm9rdXNmYWxsZSBmw7xyIGRh +cyBB4oCTWi1PdmVybGF5IChlaW56aWdlcyBOaWNodC08ZGlhbG9nPi1Nb2RhbCkuIEVzYyBzY2hs +aWXDn3Q7IFRhYiBibGVpYnQgZHJpbi4KICB2YXIgYXpQcmV2Rm9jdXMgPSBudWxsLCBhektleUgg +PSBudWxsOwogIGZ1bmN0aW9uIGF6UGFuZWwoKSB7IHJldHVybiAkKCIuYXotcGFuZWwiKTsgfQog +IGZ1bmN0aW9uIGF6Rm9jdXNhYmxlcygpIHsKICAgIHZhciBwID0gYXpQYW5lbCgpOyBpZiAoIXAp +IHJldHVybiBbXTsKICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwLnF1ZXJ5 +U2VsZWN0b3JBbGwoJ2FbaHJlZl0sYnV0dG9uOm5vdChbZGlzYWJsZWRdKSxpbnB1dDpub3QoW2Rp +c2FibGVkXSksc2VsZWN0LHRleHRhcmVhLFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSkn +KSkKICAgICAgLmZpbHRlcihmdW5jdGlvbiAobikgeyByZXR1cm4gbi5vZmZzZXRQYXJlbnQgIT09 +IG51bGw7IH0pOwogIH0KICBmdW5jdGlvbiBhelRyYXAoZSkgewogICAgaWYgKGRvY3VtZW50LnF1 +ZXJ5U2VsZWN0b3IoImRpYWxvZ1tvcGVuXSIpKSByZXR1cm47ICAgLy8gZGFyw7xiZXJsaWVnZW5k +ZXMgTW9kYWwgaGF0IGVpZ2VuZSBGYWxsZSAtPiBuaWNodCBzdMO2cmVuCiAgICBpZiAoZS5rZXkg +PT09ICJFc2NhcGUiKSB7IGUucHJldmVudERlZmF1bHQoKTsgUC5jbG9zZUFaKCk7IHJldHVybjsg +fQogICAgaWYgKGUua2V5ICE9PSAiVGFiIikgcmV0dXJuOwogICAgdmFyIGYgPSBhekZvY3VzYWJs +ZXMoKTsgaWYgKCFmLmxlbmd0aCkgcmV0dXJuOwogICAgdmFyIHAgPSBhelBhbmVsKCksIGEgPSBk +b2N1bWVudC5hY3RpdmVFbGVtZW50LCBmaXJzdCA9IGZbMF0sIGxhc3QgPSBmW2YubGVuZ3RoIC0g +MV07CiAgICBpZiAoZS5zaGlmdEtleSAmJiAoYSA9PT0gZmlyc3QgfHwgIXAuY29udGFpbnMoYSkp +KSB7IGUucHJldmVudERlZmF1bHQoKTsgbGFzdC5mb2N1cygpOyB9CiAgICBlbHNlIGlmICghZS5z +aGlmdEtleSAmJiAoYSA9PT0gbGFzdCB8fCAhcC5jb250YWlucyhhKSkpIHsgZS5wcmV2ZW50RGVm +YXVsdCgpOyBmaXJzdC5mb2N1cygpOyB9CiAgfQoKfSkod2luZG93LlApOwo= +### FILE: assets/js/features/toc.js | 2825 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvdG9jLmpzICAoUGhh +c2UgOCkKICAgQXV0b21hdGlzY2hlcyBJbmhhbHRzdmVyemVpY2huaXMgZsO8ciBsYW5nZSBBcnRp +a2VsOiBzY2FubnQgaDIvaDMgaW4gZGVyCiAgIGdlcmVuZGVydGVuIEFydGlrZWwtQW5zaWNodCwg +YmF1dCBlaW4gc2VpdGxpY2hlcyBUT0MgbWl0IFNjcm9sbC1NaXRsYXVmCiAgIChJbnRlcnNlY3Rp +b25PYnNlcnZlcikgdW5kIHNhbmZ0ZW0gU3BydW5nLiBOdXIgYWIg4omlMyDDnGJlcnNjaHJpZnRl +bi4gUmVpbmVyCiAgIERPTS1Db2RlIOKAlCBmdW5rdGlvbmllcnQgYXVjaCBmw7xyIExlc2VyIChm +aWxlOi8vKS4gVW1ow7xsbHQgb3BlbkFydGljbGUvY2xvc2VEb2MuCiAgID09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq +LwooZnVuY3Rpb24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVsID0gUC5lbCwgJCA9IFAu +JCwgJCQgPSBQLiQkOwogIHZhciBvYnNlcnZlciA9IG51bGwsIGFzaWRlID0gbnVsbCwgbGlua0J5 +SWQgPSB7fTsKCiAgZnVuY3Rpb24gdGVhcmRvd24oKSB7CiAgICBpZiAob2JzZXJ2ZXIpIHsgdHJ5 +IHsgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOyB9IGNhdGNoIChlKSB7fSBvYnNlcnZlciA9IG51bGw7 +IH0KICAgIGlmIChhc2lkZSAmJiBhc2lkZS5wYXJlbnROb2RlKSBhc2lkZS5wYXJlbnROb2RlLnJl +bW92ZUNoaWxkKGFzaWRlKTsKICAgIGFzaWRlID0gbnVsbDsgbGlua0J5SWQgPSB7fTsKICB9Cgog +IGZ1bmN0aW9uIGJ1aWxkKCkgewogICAgdGVhcmRvd24oKTsKICAgIHZhciBob3N0ID0gJCgiI2N2 +LWFydGljbGUiKTsgaWYgKCFob3N0KSByZXR1cm47CiAgICB2YXIgYm9keSA9ICQoIi5hcnQtYm9k +eSIsIGhvc3QpOyBpZiAoIWJvZHkpIHJldHVybjsKICAgIHZhciBoZWFkcyA9ICQkKCJoMixoMyIs +IGJvZHkpOwogICAgaWYgKGhlYWRzLmxlbmd0aCA8IDMpIHJldHVybjsgICAvLyBrdXJ6ZSBBcnRp +a2VsOiBrZWluIFRPQwoKICAgIHZhciBuYXYgPSBlbCgibmF2IiwgeyBjbGFzczogImFydC10b2Mi +LCAiYXJpYS1sYWJlbCI6ICJJbmhhbHQiIH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGVsKCJkaXYi +LCB7IGNsYXNzOiAiYXJ0LXRvYy1oIiwgdGV4dDogIkluaGFsdCIgfSkpOwogICAgdmFyIGxpc3Qg +PSBlbCgidWwiKTsKICAgIGhlYWRzLmZvckVhY2goZnVuY3Rpb24gKGgsIGkpIHsKICAgICAgdmFy +IHRleHQgPSAoaC50ZXh0Q29udGVudCB8fCAiIikudHJpbSgpOyBpZiAoIXRleHQpIHJldHVybjsK +ICAgICAgaWYgKCFoLmlkKSBoLmlkID0gInRvYy0iICsgUC5zbHVnKHRleHQpICsgIi0iICsgaTsK +ICAgICAgdmFyIGEgPSBlbCgiYSIsIHsgaHJlZjogIiMiICsgaC5pZCwgdGV4dDogdGV4dCwgY2xh +c3M6IGgudGFnTmFtZSA9PT0gIkgzIiA/ICJsdmwzIiA6ICJsdmwyIiwKICAgICAgICBvbmNsaWNr +OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAg +dmFyIHNtb290aCA9ICEod2luZG93Lm1hdGNoTWVkaWEgJiYgbWF0Y2hNZWRpYSgiKHByZWZlcnMt +cmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzKTsKICAgICAgICAgIHRyeSB7IGguc2Ny +b2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogc21vb3RoID8gInNtb290aCIgOiAiYXV0byIsIGJsb2Nr +OiAic3RhcnQiIH0pOyB9IGNhdGNoICh4KSB7IGguc2Nyb2xsSW50b1ZpZXcoKTsgfQogICAgICAg +IH0gfSk7CiAgICAgIGxpbmtCeUlkW2guaWRdID0gYTsKICAgICAgbGlzdC5hcHBlbmRDaGlsZChl +bCgibGkiLCBudWxsLCBbYV0pKTsKICAgIH0pOwogICAgbmF2LmFwcGVuZENoaWxkKGxpc3QpOwog +ICAgaG9zdC5pbnNlcnRCZWZvcmUobmF2LCBob3N0LmZpcnN0Q2hpbGQpOwogICAgYXNpZGUgPSBu +YXY7CgogICAgLy8gU2Nyb2xsLU1pdGxhdWYgKG9wdGlvbmFsOyBncmFjZWZ1bCBvaG5lIE9ic2Vy +dmVyKS4KICAgIGlmICh3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHsKICAgICAgb2JzZXJ2 +ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKGVudHJpZXMpIHsKICAgICAg +ICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKGVuKSB7CiAgICAgICAgICBpZiAoZW4uaXNJbnRl +cnNlY3RpbmcpIHsKICAgICAgICAgICAgdmFyIGEgPSBsaW5rQnlJZFtlbi50YXJnZXQuaWRdOyBp +ZiAoIWEpIHJldHVybjsKICAgICAgICAgICAgJCQoIi5hcnQtdG9jIGEuYWN0aXZlIikuZm9yRWFj +aChmdW5jdGlvbiAoeCkgeyB4LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpOyB9KTsKICAgICAg +ICAgICAgYS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTsKICAgICAgICAgIH0KICAgICAgICB9KTsK +ICAgICAgfSwgeyByb290OiBob3N0LCByb290TWFyZ2luOiAiMHB4IDBweCAtNzAlIDBweCIsIHRo +cmVzaG9sZDogMCB9KTsKICAgICAgaGVhZHMuZm9yRWFjaChmdW5jdGlvbiAoaCkgeyBpZiAoaC5p +ZCkgb2JzZXJ2ZXIub2JzZXJ2ZShoKTsgfSk7CiAgICB9CiAgfQoKICBpZiAoUC5vcGVuQXJ0aWNs +ZSkgeyB2YXIgX29wZW4gPSBQLm9wZW5BcnRpY2xlOyBQLm9wZW5BcnRpY2xlID0gZnVuY3Rpb24g +KGl0KSB7IF9vcGVuKGl0KTsgYnVpbGQoKTsgfTsgfQogIGlmIChQLmNsb3NlRG9jKSB7IHZhciBf +Y2xvc2UgPSBQLmNsb3NlRG9jOyBQLmNsb3NlRG9jID0gZnVuY3Rpb24gKCkgeyB0ZWFyZG93bigp +OyBfY2xvc2UoKTsgfTsgfQoKfSkod2luZG93LlApOwo= +### FILE: assets/js/features/whatsnew.js | 3433 +LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgIFBPUlRBTCBVTklPTiDigJQgZmVhdHVyZXMvd2hhdHNuZXcuanMK +ICAg4oCeTmV1ZXMgJiB6dWxldHp0IEdlw6RuZGVydGVzIiDigJQgZnVlaHJ0IGRpZSBmcnVlaGVy +ZW4gQ29ja3BpdC1XaWRnZXRzCiAgIOKAnlNlaXQgZGVpbmVtIGxldHp0ZW4gQmVzdWNoIiB1bmQg +4oCeWnVsZXR6dCBnZcOkbmRlcnRlcyBXaXNzZW4iIGluIEVJTkVNCiAgIE1vZGFsIHp1c2FtbWVu +LiBBdWZydWYgdWViZXIgZGVuIEVpbnRyYWcgbGlua3MgaW4gZGVyIE5hdmlnYXRpb24uCiAgIFJl +aW5lciBBbnplaWdlLUNvZGUgYXVzIHZvcmhhbmRlbmVuIERhdGVuIChNZWxkdW5nZW4gKyBOYXYt +QXJ0aWtlbCksCiAgIGZpbGU6Ly8tdGF1Z2xpY2gsIGtlaW5lIEVTLU1vZHVsZS4gTGFlZHQgbmFj +aCBmZWVkLmpzL25hdi5qcywgdm9yIG1haW4uanMuCiAgID09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwooZnVuY3Rp +b24gKFApIHsKICAidXNlIHN0cmljdCI7CiAgdmFyIGVsID0gUC5lbCwgaWMgPSBQLmljOwoKICBm +dW5jdGlvbiB0bnVtKHMpIHsgaWYgKCFzKSByZXR1cm4gMDsgdmFyIHQgPSBuZXcgRGF0ZShzKS5n +ZXRUaW1lKCk7IHJldHVybiBpc05hTih0KSA/IDAgOiB0OyB9CgogIC8vIE5ldSBzZWl0IGRlbSBs +ZXR6dGVuIEJlc3VjaCAoTWVsZHVuZ2VuICsgQXJ0aWtlbCkuCiAgZnVuY3Rpb24gc2luY2VWaXNp +dCgpIHsKICAgIHZhciBsdiA9IFAubGFzdFZpc2l0IHx8IDAsIHJvd3MgPSBbXTsKICAgIChQLmNv +bnRlbnQuYnVsbGV0aW5zIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7CiAgICAgIHZhciB3 +ID0gYi51cGRhdGVkIHx8IGIuY3JlYXRlZCB8fCBiLmRhdGU7CiAgICAgIGlmICh0bnVtKHcpID4g +bHYpIHJvd3MucHVzaCh7IGxhYmVsOiBiLnRpdGxlLCB3aGVuOiB3LCBraW5kOiAiYnVsbGV0aW4i +LCByZWY6IGIsIHN1YjogIk1lbGR1bmciLCBpc05ldzogdHJ1ZSB9KTsKICAgIH0pOwogICAgaWYg +KFAuZWFjaE5hdkl0ZW0pIFAuZWFjaE5hdkl0ZW0oZnVuY3Rpb24gKGl0KSB7CiAgICAgIGlmIChp +dC5hcnRpY2xlKSB7IHZhciB3ID0gaXQuYXJ0aWNsZS51cGRhdGVkIHx8IGl0LmFydGljbGUuZGF0 +ZTsgaWYgKHRudW0odykgPiBsdikgcm93cy5wdXNoKHsgbGFiZWw6IGl0LmxhYmVsIHx8IGl0LmFy +dGljbGUudGl0bGUsIHdoZW46IHcsIGtpbmQ6ICJhcnRpY2xlIiwgcmVmOiBpdCwgc3ViOiAiQXJ0 +aWtlbCIsIGlzTmV3OiB0cnVlIH0pOyB9CiAgICB9KTsKICAgIHJldHVybiByb3dzLnNvcnQoZnVu +Y3Rpb24gKGEsIGIpIHsgcmV0dXJuIHRudW0oYi53aGVuKSAtIHRudW0oYS53aGVuKTsgfSk7CiAg +fQogIC8vIFp1bGV0enQgZ2VhZW5kZXJ0ZSBXaXNzZW5zYXJ0aWtlbC4KICBmdW5jdGlvbiByZWNl +bnRLbm93bGVkZ2UobikgewogICAgdmFyIHJvd3MgPSBbXTsKICAgIGlmIChQLmVhY2hOYXZJdGVt +KSBQLmVhY2hOYXZJdGVtKGZ1bmN0aW9uIChpdCkgewogICAgICBpZiAoaXQuYXJ0aWNsZSkgeyB2 +YXIgdyA9IGl0LmFydGljbGUudXBkYXRlZCB8fCBpdC5hcnRpY2xlLmRhdGU7IGlmICh0bnVtKHcp +ID4gMCkgcm93cy5wdXNoKHsgbGFiZWw6IGl0LmxhYmVsIHx8IGl0LmFydGljbGUudGl0bGUsIHdo +ZW46IHcsIGtpbmQ6ICJhcnRpY2xlIiwgcmVmOiBpdCwgc3ViOiAiQXJ0aWtlbCIgfSk7IH0KICAg +IH0pOwogICAgcmV0dXJuIHJvd3Muc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gdG51bShi +LndoZW4pIC0gdG51bShhLndoZW4pOyB9KS5zbGljZSgwLCBuIHx8IDEyKTsKICB9CiAgZnVuY3Rp +b24ganVtcChyKSB7CiAgICBpZiAoci5raW5kID09PSAiYnVsbGV0aW4iICYmIFAuZmxhc2hCdWxs +ZXRpbikgUC5mbGFzaEJ1bGxldGluKHIucmVmKTsKICAgIGVsc2UgaWYgKFAubmF2aWdhdGUpIFAu +bmF2aWdhdGUoci5yZWYpOwogIH0KCiAgUC5vcGVuV2hhdHNOZXcgPSBmdW5jdGlvbiAoKSB7CiAg +ICB2YXIgc2VlbiA9IHNpbmNlVmlzaXQoKS5zbGljZSgwLCBQLm1vZCgid2hhdHNuZXcuc2Vlbkxp +bWl0IikpOwogICAgdmFyIHJlY2VudCA9IHJlY2VudEtub3dsZWRnZShQLm1vZCgid2hhdHNuZXcu +cmVjZW50TGltaXQiKSk7CiAgICB2YXIgbTsKICAgIGZ1bmN0aW9uIHJvd0VsKHIpIHsKICAgICAg +cmV0dXJuIGVsKCJidXR0b24iLCB7IGNsYXNzOiAibGMtcm93IiwgdGl0bGU6IHIubGFiZWwgfHwg +IiIsIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsgaWYgKG0pIG0uY2xvc2UoKTsganVtcChyKTsgfSB9 +LCBbCiAgICAgICAgZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtbWFpbiIgfSwgWwogICAgICAgICAg +ZWwoInNwYW4iLCB7IGNsYXNzOiAibGMtbGJsIiwgdGV4dDogci5sYWJlbCB8fCAiKG9obmUgVGl0 +ZWwpIiB9KSwKICAgICAgICAgIGVsKCJzcGFuIiwgeyBjbGFzczogImxjLXBhdGgiLCB0ZXh0OiAo +ci5zdWIgPyByLnN1YiArICIgwrcgIiA6ICIiKSArIFAuZm10RGF0ZShyLndoZW4pIH0pCiAgICAg +ICAgXSksCiAgICAgICAgci5pc05ldyA/IGVsKCJzcGFuIiwgeyBjbGFzczogImxjLWJhZGdlIHdh +aXQiLCB0ZXh0OiAiTkVVIiB9KSA6IG51bGwKICAgICAgXSk7CiAgICB9CiAgICBmdW5jdGlvbiBz +ZWN0aW9uKGhvc3QsIGxhYmVsLCByb3dzLCBlbXB0eVRleHQpIHsKICAgICAgaG9zdC5hcHBlbmRD +aGlsZChlbCgiZGl2IiwgeyBjbGFzczogImZlZWQtc2VjdGlvbi1sYWJlbCIsIGh0bWw6IGljKCJj +bG9jayIpICsgUC5lc2NhcGVIdG1sKGxhYmVsKSB9KSk7CiAgICAgIGlmICghcm93cy5sZW5ndGgp +IHsgaG9zdC5hcHBlbmRDaGlsZChlbCgiZGl2IiwgeyBjbGFzczogImxjLWVtcHR5IiwgdGV4dDog +ZW1wdHlUZXh0IHx8ICLigJQiIH0pKTsgcmV0dXJuOyB9CiAgICAgIHZhciBsaXN0ID0gZWwoImRp +diIsIHsgY2xhc3M6ICJsYy1saXN0IiB9KTsKICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uIChy +KSB7IGxpc3QuYXBwZW5kQ2hpbGQocm93RWwocikpOyB9KTsKICAgICAgaG9zdC5hcHBlbmRDaGls +ZChsaXN0KTsKICAgIH0KICAgIG0gPSBQLm1vZGFsKHsKICAgICAgdGl0bGU6IFAudCgid2hhdHNu +ZXcudGl0bGUiKSwgaWNvbjogImNsb2NrIiwgc2l6ZTogImxnIiwKICAgICAgYm9keTogZnVuY3Rp +b24gKGhvc3QpIHsKICAgICAgICBzZWN0aW9uKGhvc3QsIFAudCgid2hhdHNuZXcuc2VlbiIpLCBz +ZWVuLCBQLnQoIndoYXRzbmV3LmVtcHR5IikpOwogICAgICAgIHNlY3Rpb24oaG9zdCwgUC50KCJ3 +aGF0c25ldy5yZWNlbnQiKSwgcmVjZW50LCAi4oCUIik7CiAgICAgIH0sCiAgICAgIGFjdGlvbnM6 +IFt7IGxhYmVsOiAiU2NobGllw59lbiIsIGtpbmQ6ICJnaG9zdCIgfV0KICAgIH0pOwogIH07Cgp9 +KSh3aW5kb3cuUCk7Cg== +### FILE: helfer/Helfer-beenden.bat | 1349 +QGVjaG8gb2ZmDQpzZXRsb2NhbCBlbmFibGVkZWxheWVkZXhwYW5zaW9uDQp0aXRsZSBQb3J0YWwg +VW5pb24gLSBIZWxmZXIgYmVlbmRlbiAvIGVudHNwZXJyZW4NCnJlbSA9PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT0NCnJlbSAgQmVlbmRldCBhbGxlIGxhdWZlbmRlbiBQb3J0YWwtUGZsZWdlLUhlbGZlciBkaWVz +ZXMgUENzIHVuZCBnaWJ0IGRhbWl0IGRpZQ0KcmVtICBwb3J0YWxfaGVsZmVyLnBzMSAoU2hhcmUg +VU5EIGxva2FsZXIgQ2FjaGUpIHdpZWRlciB6dW0gQWt0dWFsaXNpZXJlbiBmcmVpLg0KcmVtICBM +b29wYmFjay1vbmx5LCBiZXRyaWZmdCBudXIgZGllIGVpZ2VuZW4gUHJvemVzc2UgZGllc2VzIEJl +bnV0emVycy4NCnJlbSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmVjaG8uDQplY2hvICAgQmVlbmRlIGxh +dWZlbmRlIFBvcnRhbC1QZmxlZ2UtSGVsZmVyIChnaWJ0IHBvcnRhbF9oZWxmZXIucHMxIGZyZWkp +IC4uLg0KZWNoby4NCnNldCAiTj0wIg0KZm9yIC9mICJ1c2ViYWNrcSB0b2tlbnM9KiIgJSVQIGlu +IChgcG93ZXJzaGVsbCAtTm9Qcm9maWxlIC1Db21tYW5kICJHZXQtQ2ltSW5zdGFuY2UgV2luMzJf +UHJvY2VzcyAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB8IFdoZXJlLU9iamVjdCB7ICgk +Xy5OYW1lIC1lcSAncG93ZXJzaGVsbC5leGUnIC1vciAkXy5OYW1lIC1lcSAncHdzaC5leGUnKSAt +YW5kICRfLkNvbW1hbmRMaW5lIC1hbmQgJF8uQ29tbWFuZExpbmUgLW1hdGNoICdwb3J0YWxfaGVs +ZmVyLipcLnBzMScgfSB8IFNlbGVjdC1PYmplY3QgLUV4cGFuZFByb3BlcnR5IFByb2Nlc3NJZCJg +KSBkbyAoDQogIHRhc2traWxsIC9QSUQgJSVQIC9GID5udWwgMj4mMQ0KICBzZXQgL2EgTj0hTiEr +MQ0KKQ0KZWNoby4NCmlmICFOISBndHIgMCAoDQogIGVjaG8gICBGZXJ0aWc6ICFOISBIZWxmZXIt +UHJvemVzc14oZV4pIGJlZW5kZXQuIHBvcnRhbF9oZWxmZXIucHMxIGlzdCBqZXR6dCBlbnRzcGVy +cnQuDQopIGVsc2UgKA0KICBlY2hvICAgS2VpbiBsYXVmZW5kZXIgSGVsZmVyIGdlZnVuZGVuIC0g +ZXMgd2FyIG5pY2h0cyB6dSBiZWVuZGVuL2VudHNwZXJyZW4uDQopDQplY2hvLg0KZWNobyAgIE9w +dGlvbmFsOiBhbHRlIGxva2FsZSBTa3JpcHQtS29waWVuIGF1ZnJhZXVtZW4gLi4uDQpkZWwgL2Yg +L3EgIiVMT0NBTEFQUERBVEElXFBvcnRhbF9Vbmlvbl9IZWxmZXJccG9ydGFsX2hlbGZlcl8qLnBz +MSIgPm51bCAyPiYxDQplY2hvLg0KcGF1c2UNCmVuZGxvY2FsDQo= +### FILE: helfer/Portal-Pflege-starten.bat | 3884 +QGVjaG8gb2ZmDQpzZXRsb2NhbCBlbmFibGVkZWxheWVkZXhwYW5zaW9uDQp0aXRsZSBQb3J0YWwg +VW5pb24gLSBQZmxlZ2UNCnJlbSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCnJlbSAgUE9SVEFMIFVOSU9O +IC0gUGZsZWdlLU1vZHVzIHN0YXJ0ZW4gIChNZWhyYmVudXR6ZXItZmFlaGlnKQ0KcmVtICAtIERl +ciBIZWxmZXIgd2lyZCBpbiBlaW5lbiBMT0tBTEVOIENhY2hlICglTE9DQUxBUFBEQVRBJSkga29w +aWVydCB1bmQgdm9uDQpyZW0gICAgZG9ydCBnZXN0YXJ0ZXQgLT4gZGllIHBvcnRhbF9oZWxmZXIu +cHMxIGF1ZiBkZW0gU2hhcmUgYmxlaWJ0IGVudHNwZXJydA0KcmVtICAgIHVuZCBqZWRlcnplaXQg +YWt0dWFsaXNpZXJiYXIsIGF1Y2ggd2VubiBIZWxmZXIgbGF1ZmVuLg0KcmVtICAtIFN0YXRlIC8g +Y29udHJhY3QuanNvbiAvIFJvbGxlbmxpc3RlbiAvIExvZ3MgYmxlaWJlbiBhdWYgZGVtIFNIQVJF +DQpyZW0gICAgKC1IZWxmZXJEaXIpLCBkYW1pdCBhbGxlIE51dHplciBkaWVzZWxiZW4gU3BlcnJl +bi9FbnR3dWVyZmUgc2VoZW4uDQpyZW0gIC0gYmVlbmRldCBhbHRlIEhlbGZlci1JbnN0YW56ZW4s +IHN1Y2h0IGVpbmVuIGZyZWllbiBQb3J0LCBvZWZmbmV0IEJyb3dzZXIuDQpyZW0gPT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09DQoNCnJlbSAtLS0gU2hhcmUtUGZhZGUgKGRpZXNlciBoZWxmZXItT3JkbmVyICsg +UG9ydGFsLVJvb3QgZWluZSBFYmVuZSBkcnVlYmVyKSAtLS0NCnNldCAiSEVMRkVSX0RJUj0lfmRw +MCINCnNldCAiSEVMRkVSX0RJUj0lSEVMRkVSX0RJUjp+MCwtMSUiDQpmb3IgJSVJIGluICgiJUhF +TEZFUl9ESVIlXC4uIikgZG8gc2V0ICJQT1JUQUxfUk9PVD0lJX5mSSINCnNldCAiU1JDX1BTPSVI +RUxGRVJfRElSJVxwb3J0YWxfaGVsZmVyLnBzMSINCnNldCAiQ0FDSEU9JUxPQ0FMQVBQREFUQSVc +UG9ydGFsX1VuaW9uX0hlbGZlciINCnNldCAiUE9SVF9LQU5ESURBVEVOPTg3NTMgODc1NCA4NzU1 +IDgwODggODE4MSA4NzY1IDkwODAgOTEyMyAxMzU3OSAyNDY4MCAyODA4MCA0MjQyNCA1NTU1NSIN +CnNldCAiUE9SVD0iDQoNCmVjaG8uDQplY2hvICAgUG9ydGFsLVBmbGVnZSB3aXJkIGdlc3RhcnRl +dCAuLi4NCmVjaG8uDQoNCnJlbSAtLS0gYWx0ZSBIZWxmZXItUHJvemVzc2UgYmVlbmRlbiAoZ2li +dCBQb3J0ICsgRGF0ZWktTG9jayBmcmVpKSAtLS0NCmZvciAvZiAidXNlYmFja3EgdG9rZW5zPSoi +ICUlUCBpbiAoYHBvd2Vyc2hlbGwgLU5vUHJvZmlsZSAtQ29tbWFuZCAiR2V0LUNpbUluc3RhbmNl +IFdpbjMyX1Byb2Nlc3MgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfCBXaGVyZS1PYmpl +Y3QgeyAoJF8uTmFtZSAtZXEgJ3Bvd2Vyc2hlbGwuZXhlJyAtb3IgJF8uTmFtZSAtZXEgJ3B3c2gu +ZXhlJykgLWFuZCAkXy5Db21tYW5kTGluZSAtYW5kICRfLkNvbW1hbmRMaW5lIC1tYXRjaCAncG9y +dGFsX2hlbGZlci4qXC5wczEnIH0gfCBTZWxlY3QtT2JqZWN0IC1FeHBhbmRQcm9wZXJ0eSBQcm9j +ZXNzSWQiYCkgZG8gdGFza2tpbGwgL1BJRCAlJVAgL0YgPm51bCAyPiYxDQoNCnJlbSAtLS0gU2ty +aXB0IGluIGRlbiBsb2thbGVuIENhY2hlIGtvcGllcmVuIChtaXQgWmVpdHN0ZW1wZWwtTmFtZW4p +IC0tLQ0KZm9yIC9mICJ1c2ViYWNrcSBkZWxpbXM9IiAlJVQgaW4gKGBwb3dlcnNoZWxsIC1Ob1By +b2ZpbGUgLUNvbW1hbmQgIihHZXQtRGF0ZSkuVG9TdHJpbmcoJ3l5eXlNTWRkX0hIbW1zcycpImAp +IGRvIHNldCAiVFM9JSVUIg0Kc2V0ICJMT0NBTF9QUz0lQ0FDSEUlXHBvcnRhbF9oZWxmZXJfJVRT +JS5wczEiDQppZiBub3QgZXhpc3QgIiVDQUNIRSUiIG1rZGlyICIlQ0FDSEUlIiAyPm51bA0KZGVs +IC9mIC9xICIlQ0FDSEUlXHBvcnRhbF9oZWxmZXJfKi5wczEiID5udWwgMj4mMQ0KY29weSAvWSAi +JVNSQ19QUyUiICIlTE9DQUxfUFMlIiA+bnVsIDI+JjENCmlmIGVycm9ybGV2ZWwgMSAoDQogIGVj +aG8gICBGRUhMRVI6IHBvcnRhbF9oZWxmZXIucHMxIGtvbm50ZSBuaWNodCBuYWNoICVDQUNIRSUg +a29waWVydCB3ZXJkZW4uDQogIGVjaG8gICAgICAgICAgIFF1ZWxsZTogJVNSQ19QUyUNCiAgcGF1 +c2UNCiAgZXhpdCAvYiAxDQopDQpwb3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLUNvbW1hbmQgIlVuYmxv +Y2stRmlsZSAtTGl0ZXJhbFBhdGggJyVMT0NBTF9QUyUnIiA+bnVsIDI+JjENCg0KcmVtIC0tLSBm +cmVpZW4gUG9ydCBzdWNoZW4gKGVjaHRlciBUY3BMaXN0ZW5lci1CaW5kKSAtLS0NCmZvciAvZiAi +dXNlYmFja3EgdG9rZW5zPSoiICUlUCBpbiAoYHBvd2Vyc2hlbGwgLU5vUHJvZmlsZSAtQ29tbWFu +ZCAiJGs9JyVQT1JUX0tBTkRJREFURU4lJyAtc3BsaXQgJyAnOyBmb3JlYWNoKCRzIGluICRrKXsg +JHA9W2ludF0kczsgdHJ5eyAkbD1OZXctT2JqZWN0IE5ldC5Tb2NrZXRzLlRjcExpc3RlbmVyKFtO +ZXQuSVBBZGRyZXNzXTo6TG9vcGJhY2ssJHApOyAkbC5TdGFydCgpOyAkbC5TdG9wKCk7IFdyaXRl +LU91dHB1dCAkcDsgZXhpdCB9Y2F0Y2h7fSB9ImApIGRvIHNldCAiUE9SVD0lJVAiDQppZiBub3Qg +ZGVmaW5lZCBQT1JUICgNCiAgZWNobyAgIEZFSExFUjogS2VpbiBmcmVpZXIgUG9ydCBnZWZ1bmRl +bi4NCiAgZWNobyAgICAgICAgICAgV2VpdGVyZSBQb3J0cyBvYmVuIGluIFBPUlRfS0FORElEQVRF +TiBlaW50cmFnZW4gdW5kIG5ldSBzdGFydGVuLg0KICBwYXVzZQ0KICBleGl0IC9iIDENCikNCg0K +cmVtIC0tLSBIZWxmZXIgYXVzIGRlbSBsb2thbGVuIENhY2hlIHN0YXJ0ZW47IERhdGVuIGJsZWli +ZW4gYXVmIGRlbSBTaGFyZSAtLS0NCnN0YXJ0ICJQb3J0YWwtUGZsZWdlLUhlbGZlciIgL21pbiBw +b3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLVdpbmRvd1N0eWxlIEhpZGRlbiAtRXhlY3V0aW9uUG9saWN5 +IEJ5cGFzcyAtRmlsZSAiJUxPQ0FMX1BTJSIgLVBvcnQgJVBPUlQlIC1Qb3J0YWxSb290ICIlUE9S +VEFMX1JPT1QlIiAtSGVsZmVyRGlyICIlSEVMRkVSX0RJUiUiDQoNCnJlbSAtLS0gd2FydGVuLCBi +aXMgZGVyIEhlbGZlciBhbnR3b3J0ZXQgKG1heCB+OCBzKSAtLS0NCnNldCAiVVA9Ig0KZm9yIC9s +ICUldyBpbiAoMSwxLDE2KSBkbyAoDQogIGlmIG5vdCBkZWZpbmVkIFVQICgNCiAgICBwb3dlcnNo +ZWxsIC1Ob1Byb2ZpbGUgLUNvbW1hbmQgInRyeXskYz1OZXctT2JqZWN0IE5ldC5Tb2NrZXRzLlRj +cENsaWVudDskYy5Db25uZWN0KCcxMjcuMC4wLjEnLCVQT1JUJSk7JGMuQ2xvc2UoKTtleGl0IDB9 +Y2F0Y2h7ZXhpdCAxfSIgPm51bCAyPiYxDQogICAgaWYgIWVycm9ybGV2ZWwhIGVxdSAwICggc2V0 +ICJVUD0xIiApIGVsc2UgKCBwb3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLUNvbW1hbmQgIlN0YXJ0LVNs +ZWVwIC1NaWxsaXNlY29uZHMgNTAwIiA+bnVsICkNCiAgKQ0KKQ0KaWYgbm90IGRlZmluZWQgVVAg +KA0KICBlY2hvICAgRkVITEVSOiBIZWxmZXIgcmVhZ2llcnQgbmljaHQgYXVmIFBvcnQgJVBPUlQl +Lg0KICBlY2hvICAgICAgICAgICBadW0gUHJ1ZWZlbiBzaWNodGJhciBzdGFydGVuOg0KICBlY2hv +ICAgICAgICAgICAgIHBvd2Vyc2hlbGwgLU5vUHJvZmlsZSAtRXhlY3V0aW9uUG9saWN5IEJ5cGFz +cyAtRmlsZSAiJUxPQ0FMX1BTJSIgLVBvcnQgJVBPUlQlIC1Qb3J0YWxSb290ICIlUE9SVEFMX1JP +T1QlIiAtSGVsZmVyRGlyICIlSEVMRkVSX0RJUiUiDQogIHBhdXNlDQogIGV4aXQgL2IgMQ0KKQ0K +DQplY2hvICAgQmVyZWl0IGF1ZiBodHRwOi8vMTI3LjAuMC4xOiVQT1JUJS8gIC0gZGVyIEJyb3dz +ZXIgb2VmZm5ldCBzaWNoLg0Kc3RhcnQgIiIgImh0dHA6Ly8xMjcuMC4wLjE6JVBPUlQlLyINCmVu +ZGxvY2FsDQo= +### FILE: helfer/hol_bao_medien.ps1 | 4328 +IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09CiMgIEJBTy1NZWRpZW4tSGVsZmVyIChXaW5kb3dzLVByb2R1 +a3Rpb247IERldi9UZXN0ID0gaG9sX2Jhb19tZWRpZW4ucHkpCiMgIC0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LQojICBGcmFndCBuYWNoIGRlbSBRdWVsbC1CQU8tVmVyemVpY2huaXMgdW5kIGhvbHQgZGFyYXVz +IEFMTEUgdm9tIFBvcnRhbAojICBiZW5vZXRpZ3RlbiBNZWRpZW4gKFBERnMvQmlsZGVyKSBnZW1h +ZXNzIGJhb1xfVFJBTlNGRVJfTUFOSUZFU1QudHh0CiMgIChbTEFVRlpFSVRdLUFic2Nobml0dCkg +bmFjaCA8UG9ydGFsPlxiYW9cPHBmYWQ+LiBFcmtlbm50IGVudHBhY2t0ZQojICBMYWdlLU9yZG5l +ciB1bmQgKGFscyBSdWVja2ZhbGwpIGRpZSBPcmlnaW5hbC1MYWdlLVpJUHMgcGFyYWdyYWZfKlw8 +bGFnZT4uemlwLgojCiMgIFN0YXJ0OiBCQU8tTWVkaWVuLWhvbGVuLmJhdCBkb3BwZWxrbGlja2Vu +ICAob2RlciBkaXJla3Q6KQojICAgICAgcG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IEJ5cGFz +cyAtRmlsZSBoZWxmZXJcaG9sX2Jhb19tZWRpZW4ucHMxCiMgIEZ1bmt0aW9uc2dsZWljaCB6dXIg +UHl0aG9uLVZhcmlhbnRlIChiZWlkZSBzeW5jaHJvbiBoYWx0ZW4pLgojID09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT0KcGFyYW0oW3N0cmluZ10kU291cmNlID0gIiIpCgokRXJyb3JBY3Rpb25QcmVmZXJlbmNl +ID0gIlN0b3AiCiRyb290ID0gU3BsaXQtUGF0aCAtUGFyZW50ICRQU1NjcmlwdFJvb3QgICAgICAg +ICAgIyBQb3J0YWwtV3VyemVsIChFbHRlcm4gdm9uIGhlbGZlclwpCiRtYW5pZmVzdCA9IEpvaW4t +UGF0aCAkcm9vdCAiYmFvXF9UUkFOU0ZFUl9NQU5JRkVTVC50eHQiCgppZiAoLW5vdCAoVGVzdC1Q +YXRoIC1MaXRlcmFsUGF0aCAkbWFuaWZlc3QpKSB7CiAgV3JpdGUtSG9zdCAiRkVITEVSOiAkbWFu +aWZlc3QgbmljaHQgZ2VmdW5kZW4uIEVyc3QgZGVuIENvZGUgcGVyIHN5bmMtZW50cGFja2VuLmJh +dCBhdWZiYXVlbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgUmVhZC1Ib3N0ICJNaXQgRW50ZXIg +c2NobGllc3NlbiI7IGV4aXQgMQp9CgppZiAoLW5vdCAkU291cmNlKSB7CiAgV3JpdGUtSG9zdCAi +QkFPLU1lZGllbi1IZWxmZXIgLSBob2x0IGFsbGUgUERGcy9CaWxkZXIgYXVzIGRlbSBRdWVsbC1C +QU8tT3JkbmVyLiIgLUZvcmVncm91bmRDb2xvciBDeWFuCiAgV3JpdGUtSG9zdCAiQmVpc3BpZWwt +UXVlbGxlOiBcXHBvbGl6ZWkubnJ3LmRlXC4uLlwxM19CQU9fUG9ydGFsICAob2RlciBlaW4gTGF1 +ZndlcmtzYnVjaHN0YWJlKSIKICAkU291cmNlID0gKFJlYWQtSG9zdCAiUXVlbGwtQkFPLVZlcnpl +aWNobmlzIikuVHJpbSgnIicpLlRyaW0oKQp9CmlmICgtbm90ICRTb3VyY2UgLW9yIC1ub3QgKFRl +c3QtUGF0aCAtTGl0ZXJhbFBhdGggJFNvdXJjZSAtUGF0aFR5cGUgQ29udGFpbmVyKSkgewogIFdy +aXRlLUhvc3QgIkZFSExFUjogUXVlbGx2ZXJ6ZWljaG5pcyBuaWNodCBnZWZ1bmRlbjogJFNvdXJj +ZSIgLUZvcmVncm91bmRDb2xvciBSZWQKICBSZWFkLUhvc3QgIk1pdCBFbnRlciBzY2hsaWVzc2Vu +IjsgZXhpdCAxCn0KCiMgTWFuaWZlc3Q6IG51ciBkZW4gW0xBVUZaRUlUXS1BYnNjaG5pdHQgKFpl +aWxlbiwgZGllIG1pdCAnYmFvLycgYmVnaW5uZW4pCiRpdGVtcyA9IEAoKTsgJGFjdGl2ZSA9ICRm +YWxzZQpmb3JlYWNoICgkbGluZSBpbiBHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJG1hbmlmZXN0 +IC1FbmNvZGluZyBVVEY4KSB7CiAgJHMgPSAkbGluZS5UcmltKCkKICBpZiAoJHMgLWxpa2UgIiMj +IGBbTEFVRlpFSVRgXSoiKSB7ICRhY3RpdmUgPSAkdHJ1ZTsgY29udGludWUgfQogIGlmICgkcyAt +bGlrZSAiIyMgYFsqIiAtYW5kICRzIC1ub3RsaWtlICIqTEFVRlpFSVQqIikgeyAkYWN0aXZlID0g +JGZhbHNlOyBjb250aW51ZSB9CiAgaWYgKCRhY3RpdmUgLWFuZCAkcy5TdGFydHNXaXRoKCJiYW8v +IikpIHsgJGl0ZW1zICs9ICRzIH0KfQoKQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uSU8u +Q29tcHJlc3Npb24uRmlsZVN5c3RlbQokemlwQ2FjaGUgPSBAe30KZnVuY3Rpb24gR2V0LVppcEJ5 +dGVzKCR6aXBQYXRoLCAkbWVtYmVyKSB7CiAgaWYgKC1ub3QgJHppcENhY2hlLkNvbnRhaW5zS2V5 +KCR6aXBQYXRoKSkgeyAkemlwQ2FjaGVbJHppcFBhdGhdID0gW1N5c3RlbS5JTy5Db21wcmVzc2lv +bi5aaXBGaWxlXTo6T3BlblJlYWQoJHppcFBhdGgpIH0KICAkemlwID0gJHppcENhY2hlWyR6aXBQ +YXRoXQogICRiYXNlID0gKCRtZW1iZXIgLXNwbGl0ICcvJylbLTFdCiAgZm9yZWFjaCAoJGUgaW4g +JHppcC5FbnRyaWVzKSB7CiAgICAkZnVsbCA9ICRlLkZ1bGxOYW1lIC1yZXBsYWNlICdcXCcsJy8n +CiAgICBpZiAoJGZ1bGwgLWVxICRtZW1iZXIgLW9yICRlLk5hbWUgLWVxICRiYXNlKSB7CiAgICAg +ICRtcyA9IE5ldy1PYmplY3QgU3lzdGVtLklPLk1lbW9yeVN0cmVhbQogICAgICAkc3QgPSAkZS5P +cGVuKCk7ICRzdC5Db3B5VG8oJG1zKTsgJHN0LkNsb3NlKCkKICAgICAgcmV0dXJuICRtcy5Ub0Fy +cmF5KCkKICAgIH0KICB9CiAgcmV0dXJuICRudWxsCn0KCldyaXRlLUhvc3QgKCJNYW5pZmVzdDog +ezB9IERhdGVpZW4genUgaG9sZW4gYXVzIHsxfSIgLWYgJGl0ZW1zLkNvdW50LCAkU291cmNlKQok +Y29waWVkID0gMDsgJHNraXBwZWQgPSAwOyAkbWlzc2luZyA9IDA7ICRtaXNzTGlzdCA9IEAoKQpm +b3JlYWNoICgkcmVsIGluICRpdGVtcykgewogICRzdWIgID0gJHJlbC5TdWJzdHJpbmcoNCkgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb2huZSAnYmFvLycKICAkZGVzdCA9IEpv +aW4tUGF0aCAkcm9vdCAoImJhb1wiICsgKCRzdWIgLXJlcGxhY2UgJy8nLCdcJykpCiAgaWYgKFRl +c3QtUGF0aCAtTGl0ZXJhbFBhdGggJGRlc3QpIHsgJHNraXBwZWQrKzsgY29udGludWUgfQogICRk +YXRhID0gJG51bGwKICAkZGlyZWN0ID0gSm9pbi1QYXRoICRTb3VyY2UgKCRzdWIgLXJlcGxhY2Ug +Jy8nLCdcJykKICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGlyZWN0IC1QYXRoVHlwZSBM +ZWFmKSB7CiAgICAkZGF0YSA9IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcygkZGlyZWN0 +KQogIH0KICBpZiAoLW5vdCAkZGF0YSAtYW5kICRzdWIuU3RhcnRzV2l0aCgicGFyYWdyYWZfIikp +IHsKICAgICRwYXJ0cyA9ICRzdWIgLXNwbGl0ICcvJwogICAgaWYgKCRwYXJ0cy5Db3VudCAtZ2Ug +MykgewogICAgICAkemlwID0gSm9pbi1QYXRoICRTb3VyY2UgKCRwYXJ0c1swXSArICJcIiArICRw +YXJ0c1sxXSArICIuemlwIikKICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHppcCAt +UGF0aFR5cGUgTGVhZikgewogICAgICAgICRtZW1iZXIgPSAoJHBhcnRzWzEuLigkcGFydHMuQ291 +bnQtMSldIC1qb2luICcvJykKICAgICAgICAkZGF0YSA9IEdldC1aaXBCeXRlcyAkemlwICRtZW1i +ZXIKICAgICAgfQogICAgfQogIH0KICBpZiAoLW5vdCAkZGF0YSkgeyAkbWlzc2luZysrOyAkbWlz +c0xpc3QgKz0gJHJlbDsgY29udGludWUgfQogICRkaXIgPSBTcGxpdC1QYXRoIC1QYXJlbnQgJGRl +c3QKICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZGlyKSkgeyBOZXctSXRlbSAt +SXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRkaXIgLUZvcmNlIHwgT3V0LU51bGwgfQogIFtTeXN0 +ZW0uSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJGRlc3QsICRkYXRhKQogICRjb3BpZWQrKwp9CmZv +cmVhY2ggKCR6IGluICR6aXBDYWNoZS5WYWx1ZXMpIHsgJHouRGlzcG9zZSgpIH0KCldyaXRlLUhv +c3QgIiIKV3JpdGUtSG9zdCAoIkZlcnRpZzogezB9IGtvcGllcnQsIHsxfSBiZXJlaXRzIHZvcmhh +bmRlbiwgezJ9IG5pY2h0IGdlZnVuZGVuLiIgLWYgJGNvcGllZCwgJHNraXBwZWQsICRtaXNzaW5n +KSAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCmlmICgkbWlzc0xpc3QuQ291bnQpIHsKICBXcml0ZS1I +b3N0ICJOaWNodCBnZWZ1bmRlbiAoaW0gUXVlbGx2ZXJ6ZWljaG5pcyBwcnVlZmVuIC8gZ2dmLiBM +YWdlLVpJUCBlbnRwYWNrZW4pOiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAkbWlzc0xpc3Qg +fCBTZWxlY3QtT2JqZWN0IC1GaXJzdCA0MCB8IEZvckVhY2gtT2JqZWN0IHsgV3JpdGUtSG9zdCAi +ICAtICRfIiB9Cn0KUmVhZC1Ib3N0ICJGZXJ0aWcuIE1pdCBFbnRlciBzY2hsaWVzc2VuIgo= +### FILE: helfer/portal_helfer.ps1 | 53520 +PCMKICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09CiAgUE9SVEFMIFVOSU9OIC0gUGZsZWdlLUhlbGZlciAo +UG93ZXJTaGVsbCA1LjEpCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEtsZWluZXIgbG9rYWxlciBI +VFRQLVNlcnZlciwgZ2VidW5kZW4gTlVSIGF1ZiAxMjcuMC4wLjEuIEVyCiAgICAxKSBsaWVmZXJ0 +IGRhcyBQb3J0YWwgYXVzIChkYW1pdCBkZXIgUmVkYWt0ZXVyIGVzIHVlYmVyIGh0dHA6Ly8xMjcu +MC4wLjEKICAgICAgIG9lZmZuZXQgdW5kIHNhbWUtb3JpZ2luIGF1ZiBkaWUgL2FwaS8qIHNjaHJl +aWJlbiBrYW5uKSwKICAgIDIpIHBydWVmdCBkZW4gV2luZG93cy1Bbm1lbGRlbmFtZW4gKCRlbnY6 +VVNFUk5BTUUpIGdlZ2VuIGRpZQogICAgICAgUmVkYWt0ZXVyLVdoaXRlbGlzdCAocmVkYWt0ZXVy +ZS50eHQgKyBOb3RmYWxsLUxpc3RlKSwKICAgIDMpIHNjaHJlaWJ0IGJlaW0gVmVyb2VmZmVudGxp +Y2hlbiBkYXRhLWNvbnRlbnQuanMgLyBkYXRhLW5hdi5qcyB1bmQgZGllCiAgICAgICBob2NoZ2Vs +YWRlbmVuIEJpbGRlci9QREZzIGRpcmVrdCBhdWYgZGllIE5ldHpmcmVpZ2FiZSAoZGVyIGFsdGUg +U3RhbmQKICAgICAgIHdpcmQgYWxzIFNuYXBzaG90IGluIGRlciBIaXN0b3JpZSB1bnRlciBzdGF0 +ZVxoaXN0b3J5XCBnZXNpY2hlcnQpLgoKICBMZXNlciBicmF1Y2hlbiBkZW4gSGVsZmVyIE5JQ0hU +IC0gc2llIG9lZmZuZW4gaW5kZXguaHRtbCBkaXJla3QgcGVyIGZpbGU6Ly8KICB1bmQgaGFiZW4g +bnVyIExlc2VyZWNodGUgKGRpZSBQZmxlZ2UtVUkgYmxlbmRldCBzaWNoIGRvcnQgYXVzKS4KCiAg +U3RhcnQgdWViZXI6IFBvcnRhbC1QZmxlZ2Utc3RhcnRlbi5iYXQKICA9PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09CiM+CnBhcmFtKAogIFtpbnRdJFBvcnQgPSA4NzUzLAogICMgUG9ydGFsUm9vdCA9IGRlciBQ +b3J0YWwtT3JkbmVyIChlaW5lIEViZW5lIHVlYmVyICdoZWxmZXInKQogIFtzdHJpbmddJFBvcnRh +bFJvb3QgPSAoU3BsaXQtUGF0aCAtUGFyZW50ICRQU1NjcmlwdFJvb3QpLAogICMgSGVsZmVyRGly +ID0gZGVyICdoZWxmZXInLU9yZG5lciBhdWYgZGVtIFNIQVJFIChjb250cmFjdC5qc29uLCBSb2xs +ZW4sIHN0YXRlLywgbG9ncy8pLgogICMgV2lyZCBnZXNldHp0LCB3ZW5uIGRhcyBTa3JpcHQgYXVz +IGVpbmVyIGxva2FsZW4gS29waWUgbGFldWZ0IChNZWhyYmVudXR6ZXI6IFNoYXJlLVNrcmlwdAog +ICMgYmxlaWJ0IGVudHNwZXJydCkuIExlZXIgPSBTa3JpcHQgbGFldWZ0IGRpcmVrdCBhdXMgZGVt +IGhlbGZlci1PcmRuZXIgKFN0YW5kYXJkKS4KICBbc3RyaW5nXSRIZWxmZXJEaXIgPSAiIgopCgok +RXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gIlN0b3AiCiMgJGhlcmUgPSBRdWVsbGUgZnVlciBTSEFS +RS1EYXRlbiAoY29udHJhY3QvUm9sbGVuL3N0YXRlL2xvZ3MpLiBCZWkgbG9rYWxlciBTa3JpcHRr +b3BpZSB6ZWlndAojIC1IZWxmZXJEaXIgYXVmIGRlbiBTaGFyZS1oZWxmZXItT3JkbmVyOyBzb25z +dCBkZXIgT3JkbmVyIGRlcyBTa3JpcHRzIHNlbGJzdC4KJGhlcmUgPSBpZiAoJEhlbGZlckRpciAt +YW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRIZWxmZXJEaXIpKSB7ICRIZWxmZXJEaXIgfSBl +bHNlIHsgJFBTU2NyaXB0Um9vdCB9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgMSkgUG9saWN5IGF1 +cyBjb250cmFjdC5qc29uIGxhZGVuIChnZW1laW5zYW1lIFF1ZWxsZSBtaXQgcG9ydGFsX2hlbGZl +ci5weSkuCiMgICAgRmVobHQva2FwdXR0IC0+IGVpbmdlYmF1dGUgRGVmYXVsdHMgKD0gYmlzaGVy +aWdlIFdlcnRlKSwgb2ZmbGluZS1yb2J1c3QuCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KJGFsbG93VGV4 +dCA9IEAoImFzc2V0cy9qcy9kYXRhLWNvbnRlbnQuanMiLCAiYXNzZXRzL2pzL2RhdGEtbmF2Lmpz +IikgICAjIERlZmF1bHQKJHJlQXJ0aWNsZSA9ICdeZG9rdW1lbnRlL2FydGlrZWwvW2EtejAtOV9d +ezEsNjB9XC5odG1sJCcgICAgICAgICAgICAgICAjIERlZmF1bHQKJHJlQm9keSAgICA9ICdeZG9r +dW1lbnRlL2pzb24vYXJ0aWtlbFwuanMkJyAgICAgICAgICAgICAgICAjIERlZmF1bHQgKGF1c2dl +bGFnZXJ0ZSBBcnRpa2VsLUJvZGllcykKJGltZ0V4dCAgICA9IEAoInBuZyIsImpwZyIsImpwZWci +LCJnaWYiLCJ3ZWJwIiwiYm1wIikgICAgICAgICAgICAgICAgICAjIERlZmF1bHQKJGRvY0V4dCAg +ICA9IEAoInBkZiIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAjIERlZmF1bHQgKGNvbnRyYWN0LWdldHJpZWJlbikKJG1heEFzc2V0ICA9IDI1TUIgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEZWZh +dWx0CiRlbWVyZ2VuY3kgPSBAKCJOVzA1MzYwOSIsICJyaGlubyIpICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIyBEZWZhdWx0CiRhZG1pbkZpbGUgPSAiYWRtaW5zLnR4dCI7ICRy +ZWRha0ZpbGUgPSAicmVkYWt0ZXVyZS50eHQiICAgICAgICAgICAgICAgIyBEZWZhdWx0CiRyYW5r +ICAgICAgPSBAeyByZWFkZXIgPSAwOyByZWRha3RldXIgPSAxOyBhZG1pbiA9IDIgfSAgICAgICAg +ICAgICAgICAgICMgRGVmYXVsdAojIERlZmF1bHQtRW5kcG9pbnRzID0gaWRlbnRpc2NoIHp1IGNv +bnRyYWN0Lmpzb24gKEZhbGxiYWNrLCBmYWxscyBjb250cmFjdC5qc29uIGZlaGx0L2thcHV0dCku +CiRlbmRwb2ludHMgPSBAewogICIvYXBpL3BpbmciID0gInJlYWRlciI7ICIvYXBpL3B1Ymxpc2gi +ID0gInJlZGFrdGV1ciI7ICIvYXBpL2Fzc2V0IiA9ICJyZWRha3RldXIiOwogICIvYXBpL3N0YXRl +IiA9ICJyZWRha3RldXIiOyAiL2FwaS9kcmFmdCIgPSAicmVkYWt0ZXVyIjsgIi9hcGkvbG9jayIg +PSAicmVkYWt0ZXVyIjsKICAiL2FwaS9oaXN0b3J5IiA9ICJhZG1pbiI7ICIvYXBpL2hpc3Rvcnkv +cmVzdG9yZSIgPSAiYWRtaW4iOwogICIvYXBpL2FkbWluIiA9ICJhZG1pbiI7ICIvYXBpL2FkbWlu +L3JvbGVzIiA9ICJhZG1pbiI7ICIvYXBpL21pZ3JhdGlvbiIgPSAiYWRtaW4iOwogICIvYXBpL29w +ZW4iID0gInJlZGFrdGV1ciI7ICIvYXBpL2ZvbGRlciIgPSAicmVkYWt0ZXVyIjsgIi9hcGkvZmls +ZXNpemUiID0gInJlZGFrdGV1ciI7CiAgIi9hcGkvdHJlZSIgPSAicmVkYWt0ZXVyIjsgIi9hcGkv +YXJ6dGxpc3RlIiA9ICJyZWRha3RldXIiOyAiL2FwaS9hcnp0YmFja3VwIiA9ICJyZWRha3RldXIi +Cn0KJGhpc3RQcnVuZURheXMgPSA5MDsgJGhpc3RNYXhQZXJUYXJnZXQgPSA1MCAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAjIERlZmF1bHQgKEhpc3RvcmllLCBQaGFzZSA1KQojIE9wZW4tQWxs +b3dsaXN0IChsb2thbGVzIE9lZmZuZW4gdm9uIE9yZG5lcm4vT2ZmaWNlLURhdGVpZW4pIC0gRGVm +YXVsdHMsIHZpYSBjb250cmFjdC5qc29uIHVlYmVyc2NocmVpYmJhcgokb3BlblJvb3RzID0gQCgi +XFxwb2xpemVpLm5ydy5kZVxncnVwcGVuXDExXExEMTFQMDAwLSIpCiRvcGVuU2VnbWVudHMgPSBA +KCIwMV9ER0wiLCAiMTJfUG9ydGFsIiwgIjEyX1BvcnRhbF9VbmlvbiIsICIxM19Qb3J0YWwiKQoj +IFNlZ21lbnQtVHJlZmZlciBnZWx0ZW4gTlVSIHVudGVyIGRpZXNlbiB2ZXJ0cmF1ZW5zd3VlcmRp +Z2VuIFd1cnplbG4gKCsgamVkZXMgTGF1ZndlcmsgWDpcKS4gRGVmYXVsdC4KJG9wZW5TZWdtZW50 +U2NvcGVzID0gQCgiXFxwb2xpemVpLm5ydy5kZVwiLCAiXFxzMDBwYWFhNzBmaXMwMDNcIikKJG9w +ZW5FeHQgPSBAKCJkb2N4IiwgImRvYyIsICJkb2NtIiwgInhsc3giLCAieGxzIiwgInhsc20iLCAi +cHB0eCIsICJwcHQiLCAicGRmIiwgImh0bSIsICJodG1sIiwgInR4dCIsICJjc3YiLCAicnRmIiwg +Im1zZyIsICJwbmciLCAianBnIiwgImpwZWciLCAiZ2lmIikKIyBBdXNmdWVocmJhcmUgVHlwZW4g +d2VyZGVuIE5VUiBnZXN0YXJ0ZXQsIHdlbm4gZGVyIFBmYWQgdW50ZXIgZWluZW0gYWxsb3dFeGUt +UHJhZWZpeCBsaWVndAojIChlbmdlIEFsbG93bGlzdDsgV2luZG93cyB6ZWlndCBiZWkgTmV0ei1F +WEUgenVzYWV0emxpY2ggZGllIFNpY2hlcmhlaXRzYWJmcmFnZSkuCiRleGVjRXh0ID0gQCgiZXhl +IiwgImJhdCIsICJjbWQiLCAiY29tIiwgIm1zaSIsICJzY3IiLCAicHMxIiwgInZicyIsICJsbmsi +LCAiamFyIikKJG9wZW5FeGVSb290cyA9IEAoIlxcczAwcGFhYTcwZmlzMDAzXExaUEQtSGlud2Vp +c2Zvcm11bGFyIikKJGNvbnRyYWN0RmlsZSA9IEpvaW4tUGF0aCAkaGVyZSAiY29udHJhY3QuanNv +biIKaWYgKFRlc3QtUGF0aCAkY29udHJhY3RGaWxlKSB7CiAgdHJ5IHsKICAgICRjb250cmFjdCA9 +IEdldC1Db250ZW50ICRjb250cmFjdEZpbGUgLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRG +cm9tLUpzb24KICAgIGlmICgkY29udHJhY3QucHVibGlzaC5hbGxvd1RleHQpICAgICAgeyAkYWxs +b3dUZXh0ID0gQCgkY29udHJhY3QucHVibGlzaC5hbGxvd1RleHQpIH0KICAgIGlmICgkY29udHJh +Y3QucHVibGlzaC5hcnRpY2xlUGF0dGVybikgeyAkcmVBcnRpY2xlID0gW3N0cmluZ10kY29udHJh +Y3QucHVibGlzaC5hcnRpY2xlUGF0dGVybiB9CiAgICBpZiAoJGNvbnRyYWN0LnB1Ymxpc2guYm9k +eVBhdHRlcm4pICAgIHsgJHJlQm9keSAgICA9IFtzdHJpbmddJGNvbnRyYWN0LnB1Ymxpc2guYm9k +eVBhdHRlcm4gfQogICAgaWYgKCRjb250cmFjdC5hc3NldC5pbWdFeHQpICAgICAgICAgICB7ICRp +bWdFeHQgICAgPSBAKCRjb250cmFjdC5hc3NldC5pbWdFeHQpIH0KICAgIGlmICgkY29udHJhY3Qu +YXNzZXQuZG9jRXh0KSAgICAgICAgICAgeyAkZG9jRXh0ICAgID0gQCgkY29udHJhY3QuYXNzZXQu +ZG9jRXh0KSB9CiAgICBpZiAoJGNvbnRyYWN0LmFzc2V0Lm1heEJ5dGVzKSAgICAgICAgIHsgJG1h +eEFzc2V0ICA9IFtsb25nXSRjb250cmFjdC5hc3NldC5tYXhCeXRlcyB9CiAgICBpZiAoJGNvbnRy +YWN0LnJvbGVzLmVtZXJnZW5jeSkgICAgICAgIHsgJGVtZXJnZW5jeSA9IEAoJGNvbnRyYWN0LnJv +bGVzLmVtZXJnZW5jeSkgfQogICAgaWYgKCRjb250cmFjdC5yb2xlcy5saXN0cy5hZG1pbikgICAg +ICB7ICRhZG1pbkZpbGUgPSBbc3RyaW5nXSRjb250cmFjdC5yb2xlcy5saXN0cy5hZG1pbiB9CiAg +ICBpZiAoJGNvbnRyYWN0LnJvbGVzLmxpc3RzLnJlZGFrdGV1cikgIHsgJHJlZGFrRmlsZSA9IFtz +dHJpbmddJGNvbnRyYWN0LnJvbGVzLmxpc3RzLnJlZGFrdGV1ciB9CiAgICBpZiAoJGNvbnRyYWN0 +LnJvbGVzLnJhbmspICAgICAgeyAkcmFuayA9IEB7fTsgICAgICAkY29udHJhY3Qucm9sZXMucmFu +ay5QU09iamVjdC5Qcm9wZXJ0aWVzICAgICAgfCBGb3JFYWNoLU9iamVjdCB7ICRyYW5rWyRfLk5h +bWVdID0gW2ludF0kXy5WYWx1ZSB9IH0KICAgIGlmICgkY29udHJhY3Qucm9sZXMuZW5kcG9pbnRz +KSB7ICRlbmRwb2ludHMgPSBAe307ICRjb250cmFjdC5yb2xlcy5lbmRwb2ludHMuUFNPYmplY3Qu +UHJvcGVydGllcyB8IEZvckVhY2gtT2JqZWN0IHsgJGVuZHBvaW50c1skXy5OYW1lXSA9IFtzdHJp +bmddJF8uVmFsdWUgfSB9CiAgICBpZiAoJGNvbnRyYWN0Lmhpc3RvcnkucHJ1bmVEYXlzKSAgICB7 +ICRoaXN0UHJ1bmVEYXlzICAgID0gW2ludF0kY29udHJhY3QuaGlzdG9yeS5wcnVuZURheXMgfQog +ICAgaWYgKCRjb250cmFjdC5oaXN0b3J5Lm1heFBlclRhcmdldCkgeyAkaGlzdE1heFBlclRhcmdl +dCA9IFtpbnRdJGNvbnRyYWN0Lmhpc3RvcnkubWF4UGVyVGFyZ2V0IH0KICAgIGlmICgkY29udHJh +Y3Qub3Blbi5hbGxvd1Jvb3RzKSAgICB7ICRvcGVuUm9vdHMgICAgPSBAKCRjb250cmFjdC5vcGVu +LmFsbG93Um9vdHMpIH0KICAgIGlmICgkY29udHJhY3Qub3Blbi5hbGxvd1NlZ21lbnRzKSB7ICRv +cGVuU2VnbWVudHMgPSBAKCRjb250cmFjdC5vcGVuLmFsbG93U2VnbWVudHMpIH0KICAgIGlmICgk +Y29udHJhY3Qub3Blbi5hbGxvd1NlZ21lbnRTY29wZXMpIHsgJG9wZW5TZWdtZW50U2NvcGVzID0g +QCgkY29udHJhY3Qub3Blbi5hbGxvd1NlZ21lbnRTY29wZXMpIH0KICAgIGlmICgkY29udHJhY3Qu +b3Blbi5hbGxvd0V4dCkgICAgICB7ICRvcGVuRXh0ICAgICAgPSBAKCRjb250cmFjdC5vcGVuLmFs +bG93RXh0KSB9CiAgICBpZiAoJGNvbnRyYWN0Lm9wZW4uYWxsb3dFeGUpICAgICAgeyAkb3BlbkV4 +ZVJvb3RzID0gQCgkY29udHJhY3Qub3Blbi5hbGxvd0V4ZSkgfQogIH0gY2F0Y2ggewogICAgV3Jp +dGUtSG9zdCAiY29udHJhY3QuanNvbiBuaWNodCBsYWRiYXIgKCQoJF8uRXhjZXB0aW9uLk1lc3Nh +Z2UpKSAtPiBEZWZhdWx0cyBha3Rpdi4iCiAgfQp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgMikg +Um9sbGUgYXVzICVVU0VSTkFNRSUgZ2VnZW4gYWRtaW5zLnR4dCAvIHJlZGFrdGV1cmUudHh0IGFi +bGVpdGVuLgojICAgIEZvcm1hdCBqZSBaZWlsZTogTldLRU5OVU5HO0FuemVpZ2VuYW1lICAoJyMn +L0xlZXJ6ZWlsZW4gaWdub3JpZXJ0KS4KIyAgICBhZG1pbiBlcmJ0IHJlZGFrdGV1cjsgTm90ZmFs +bC1LZW5udW5nZW4gc2luZCBpbW1lciBhZG1pbi4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmdW5jdGlv +biBSZWFkLVJvbGVMaXN0KFtzdHJpbmddJGZpbGVOYW1lKSB7CiAgJG1hcCA9IEB7fQogICRwID0g +Sm9pbi1QYXRoICRoZXJlICRmaWxlTmFtZQogIGlmIChUZXN0LVBhdGggJHApIHsKICAgIEdldC1D +b250ZW50ICRwIC1FbmNvZGluZyBVVEY4IHwgRm9yRWFjaC1PYmplY3QgewogICAgICAkbGluZSA9 +ICRfLlRyaW0oKQogICAgICBpZiAoJGxpbmUgLWFuZCAtbm90ICRsaW5lLlN0YXJ0c1dpdGgoIiMi +KSkgewogICAgICAgICRwYXJ0cyA9ICRsaW5lLlNwbGl0KCI7IiwgMikKICAgICAgICAka2VubnVu +ZyA9ICRwYXJ0c1swXS5UcmltKCkKICAgICAgICBpZiAoJGtlbm51bmcpIHsKICAgICAgICAgICRu +YW1lID0gJGtlbm51bmcKICAgICAgICAgIGlmICgkcGFydHMuQ291bnQgLWd0IDEgLWFuZCAkcGFy +dHNbMV0uVHJpbSgpKSB7ICRuYW1lID0gJHBhcnRzWzFdLlRyaW0oKSB9CiAgICAgICAgICAkbWFw +WyRrZW5udW5nLlRvTG93ZXIoKV0gPSAkbmFtZQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0K +ICByZXR1cm4gJG1hcAp9CgokbWUgPSAkZW52OlVTRVJOQU1FCiRtZUxvd2VyID0gJG1lLlRvTG93 +ZXIoKQokYWRtaW5zID0gUmVhZC1Sb2xlTGlzdCAkYWRtaW5GaWxlCiRyZWRhayAgPSBSZWFkLVJv +bGVMaXN0ICRyZWRha0ZpbGUKJGVtZXJnZW5jeUxvd2VyID0gQCgkZW1lcmdlbmN5IHwgRm9yRWFj +aC1PYmplY3QgeyAoW3N0cmluZ10kXykuVG9Mb3dlcigpIH0pCiRyb2xlID0gInJlYWRlciI7ICRt +ZU5hbWUgPSAkbWUKaWYgKCRlbWVyZ2VuY3lMb3dlciAtY29udGFpbnMgJG1lTG93ZXIpIHsgJHJv +bGUgPSAiYWRtaW4iOyBpZiAoJGFkbWluc1skbWVMb3dlcl0pIHsgJG1lTmFtZSA9ICRhZG1pbnNb +JG1lTG93ZXJdIH0gfQplbHNlaWYgKCRhZG1pbnMuQ29udGFpbnNLZXkoJG1lTG93ZXIpKSB7ICRy +b2xlID0gImFkbWluIjsgJG1lTmFtZSA9ICRhZG1pbnNbJG1lTG93ZXJdIH0KZWxzZWlmICgkcmVk +YWsuQ29udGFpbnNLZXkoJG1lTG93ZXIpKSAgeyAkcm9sZSA9ICJyZWRha3RldXIiOyAkbWVOYW1l +ID0gJHJlZGFrWyRtZUxvd2VyXSB9CgppZiAoJHJvbGUgLWVxICJyZWFkZXIiKSB7CiAgdHJ5IHsK +ICAgIEFkZC1UeXBlIC1Bc3NlbWJseU5hbWUgU3lzdGVtLldpbmRvd3MuRm9ybXMKICAgIFtTeXN0 +ZW0uV2luZG93cy5Gb3Jtcy5NZXNzYWdlQm94XTo6U2hvdygKICAgICAgIktlaW4gU2NocmVpYnJl +Y2h0IGZ1ZXIgQmVudXR6ZXIgJyRtZScuYG5gbkRhcyBQb3J0YWwgbGFlc3N0IHNpY2ggd2VpdGVy +aGluIGxlc2VuIChpbmRleC5odG1sKSwgYWJlciBkaWUgRGF0ZW5wZmxlZ2UgaXN0IG51ciBmdWVy +IGZyZWlnZWdlYmVuZSBSZWRha3RldXJlL0FkbWlucy5gbmBuRnJlaWdhYmUgdWViZXI6IGhlbGZl +clxyZWRha3RldXJlLnR4dCBiencuIGhlbGZlclxhZG1pbnMudHh0IiwKICAgICAgIlBvcnRhbCBV +bmlvbiAtIFBmbGVnZS1IZWxmZXIiLCAiT0siLCAiV2FybmluZyIpIHwgT3V0LU51bGwKICB9IGNh +dGNoIHt9CiAgV3JpdGUtSG9zdCAiQmVudXR6ZXIgJyRtZScgaXN0IHdlZGVyIFJlZGFrdGV1ciBu +b2NoIEFkbWluLiBCZWVuZGUuIgogIGV4aXQgMQp9CgojIE1pbmRlc3Ryb2xsZSBqZSBFbmRwb2lu +dCBlcnp3aW5nZW4gKFNlcnZlci1zZWl0aWcsIG5pY2h0IG51ciBVSSkuCmZ1bmN0aW9uIFRlc3Qt +Um9sZUFsbG93ZWQoW3N0cmluZ10kcGF0aCkgewogICRtciA9ICRudWxsCiAgaWYgKCRlbmRwb2lu +dHMuQ29udGFpbnNLZXkoJHBhdGgpKSB7ICRtciA9ICRlbmRwb2ludHNbJHBhdGhdIH0KICBlbHNl +IHsgZm9yZWFjaCAoJGsgaW4gJGVuZHBvaW50cy5LZXlzKSB7IGlmICgkcGF0aC5TdGFydHNXaXRo +KCRrICsgIi8iKSkgeyAkbXIgPSAkZW5kcG9pbnRzWyRrXTsgYnJlYWsgfSB9IH0KICBpZiAoLW5v +dCAkbXIpIHsgcmV0dXJuICR0cnVlIH0gICAjIHN0YXRpc2NoZSBBdXNsaWVmZXJ1bmcgZXRjLiAt +PiBrZWluIFNjaHJlaWItRW5kcG9pbnQKICAkaGF2ZSA9IDA7ICBpZiAoJHJhbmsuQ29udGFpbnNL +ZXkoJHJvbGUpKSB7ICRoYXZlID0gJHJhbmtbJHJvbGVdIH0KICAkbmVlZCA9IDk5OyBpZiAoJHJh +bmsuQ29udGFpbnNLZXkoJG1yKSkgICB7ICRuZWVkID0gJHJhbmtbJG1yXSB9CiAgcmV0dXJuICgk +aGF2ZSAtZ2UgJG5lZWQpCn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAzKSBQZmFkZSAvIEFibGFn +ZW4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokYXNzZXRzRGlyICA9IEpvaW4tUGF0aCAkUG9ydGFsUm9v +dCAiZG9rdW1lbnRlXG1lZGlhXHVwbG9hZHMiCiRsb2dEaXIgICAgID0gSm9pbi1QYXRoICRoZXJl +ICJsb2dzIgpmb3JlYWNoICgkZCBpbiBAKCRhc3NldHNEaXIsICRsb2dEaXIpKSB7IGlmICgtbm90 +IChUZXN0LVBhdGggJGQpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJGQg +LUZvcmNlIHwgT3V0LU51bGwgfSB9CiRsb2dGaWxlID0gSm9pbi1QYXRoICRsb2dEaXIgKCJwdWJs +aXNoXyIgKyAoJG1lIC1yZXBsYWNlICdbXkEtWmEtejAtOV8uLV0nLCAnXycpICsgIi5sb2ciKSAg +ICMgcHJvIFVzZXIgZWlnZW5lIExvZ2RhdGVpIC0+IGtlaW5lIFNjaHJlaWJrb25mbGlrdGUgYmVp +IG1laHJlcmVuIGdsZWljaHplaXRpZ2VuIE51dHplcm4KCiMgS29sbGFib3JhdGlvbnMtU3RhdGUg +YXVmIGRlbSBTaGFyZSAoUGhhc2UgNCk6IEVudHd1ZXJmZSwgTG9ja3MsIEFrdGl2aXRhZXQsIFZl +cnNpb25zc3RhZW5kZS4KJHN0YXRlRGlyICAgICA9IEpvaW4tUGF0aCAkaGVyZSAic3RhdGUiCiRk +cmFmdHNEaXIgICAgPSBKb2luLVBhdGggJHN0YXRlRGlyICJkcmFmdHMiCiRsb2Nrc0RpciAgICAg +PSBKb2luLVBhdGggJHN0YXRlRGlyICJsb2NrcyIKJGhpc3RvcnlEaXIgICA9IEpvaW4tUGF0aCAk +c3RhdGVEaXIgImhpc3RvcnkiICAgICAgICAgICAjIFBoYXNlIDU6IFNuYXBzaG90cyArIGluZGV4 +Lmpzb24KJGhpc3RvcnlJbmRleCA9IEpvaW4tUGF0aCAkaGlzdG9yeURpciAiaW5kZXguanNvbiIK +JGFjdGl2aXR5RmlsZSA9IEpvaW4tUGF0aCAkc3RhdGVEaXIgImFjdGl2aXR5Lmpzb24iCiRyZXZz +RmlsZSAgICAgPSBKb2luLVBhdGggJHN0YXRlRGlyICJyZXZzLmpzb24iCiRsb2NrVHRsICAgICAg +PSAzMDAgICAgICAgIyBTZWt1bmRlbiwgZGFubiBnaWx0IGVpbiBMb2NrIGFscyB2ZXJ3YWlzdAok +YWN0aXZpdHlNYXggID0gMjAwCmZvcmVhY2ggKCRkIGluIEAoJHN0YXRlRGlyLCAkZHJhZnRzRGly +LCAkbG9ja3NEaXIsICRoaXN0b3J5RGlyKSkgeyBpZiAoLW5vdCAoVGVzdC1QYXRoICRkKSkgeyBO +ZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRkIC1Gb3JjZSB8IE91dC1OdWxsIH0g +fQoKJHV0ZjggPSBOZXctT2JqZWN0IFN5c3RlbS5UZXh0LlVURjhFbmNvZGluZygkZmFsc2UpICAg +IyBVVEYtOCBvaG5lIEJPTQoKZnVuY3Rpb24gV3JpdGUtTG9nKFtzdHJpbmddJG1zZykgewogICR0 +cyA9IEdldC1EYXRlIC1Gb3JtYXQgInl5eXktTU0tZGQgSEg6bW06c3MiCiAgIyBMb2dnaW5nIGRh +cmYgTklFIGVpbmVuIFJlcXVlc3Qgc2NoZWl0ZXJuIGxhc3NlbiAoei5CLiBrdXJ6emVpdGlnZXIg +RGF0ZWktTG9jaykgLT4gc3RpbGwgc2NobHVja2VuLgogIHRyeSB7IEFkZC1Db250ZW50IC1QYXRo +ICRsb2dGaWxlIC1WYWx1ZSAoInswfWB0ezF9YHR7Mn0iIC1mICR0cywgJG1lLCAkbXNnKSAtRW5j +b2RpbmcgVVRGOCAtRXJyb3JBY3Rpb24gU3RvcCB9IGNhdGNoIHt9Cn0KCiMgLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0KIyBIaXN0b3JpZSAoUGhhc2UgNSk6IHZvciBqZWRlbSBVZWJlcnNjaHJlaWJlbiBkZW4g +QUxURU4gSW5oYWx0IGFscyBTbmFwc2hvdAojIG5hY2ggc3RhdGVcaGlzdG9yeVw8aWQ+LnNuYXAg +c2ljaGVybiArIEVpbnRyYWcgaW4gaW5kZXguanNvbi4gRXJzZXR6dCBkYXMKIyBmcnVlaGVyIGZs +YWNoZSBoZWxmZXJcYmFja3Vwc1wuIFJlc3RvcmUgc2NocmVpYnQgZWluZW4gU25hcHNob3QgenVy +dWVjay4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmdW5jdGlvbiBHZXQtSGlzdG9yeUluZGV4IHsgcmV0 +dXJuIEAoUmVhZC1TdGF0ZUpzb24gJGhpc3RvcnlJbmRleCBAKCkpIH0KCmZ1bmN0aW9uIFNuYXBz +aG90LUZpbGUoW3N0cmluZ10kZnVsbCwgW3N0cmluZ10kcmVsTmFtZSwgW2ludF0kcmV2LCBbc3Ry +aW5nXSRhY3Rpb24sIFtzdHJpbmddJG5vdGUpIHsKICBpZiAoLW5vdCAoVGVzdC1QYXRoICRmdWxs +KSkgeyByZXR1cm4gfQogICRoaWQgPSAoR2V0LURhdGUgLUZvcm1hdCAieXl5eU1NZGQtSEhtbXNz +IikgKyAiLSIgKyAoW0d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoIk4iKS5TdWJzdHJpbmcoMCw2 +KSkKICBDb3B5LUl0ZW0gJGZ1bGwgKEpvaW4tUGF0aCAkaGlzdG9yeURpciAoIiRoaWQuc25hcCIp +KSAtRm9yY2UKICAkYnl0ZXMgPSAoR2V0LUl0ZW0gJGZ1bGwpLkxlbmd0aAogICRlbnRyeSA9IFtv +cmRlcmVkXUB7IGlkID0gJGhpZDsgdHMgPSAoTm93LUlzbyk7IHVzZXIgPSAkbWU7IG5hbWUgPSAk +bWVOYW1lOyByb2xlID0gJHJvbGU7IHRhcmdldCA9ICRyZWxOYW1lOyBhY3Rpb24gPSAkYWN0aW9u +OyByZXYgPSAkcmV2OyBieXRlcyA9ICRieXRlczsgbm90ZSA9ICRub3RlIH0KICAkaWR4ID0gQCgk +ZW50cnkpICsgQChHZXQtSGlzdG9yeUluZGV4KQogIFdyaXRlLVN0YXRlSnNvbiAkaGlzdG9yeUlu +ZGV4ICRpZHgKfQoKZnVuY3Rpb24gUHJ1bmUtSGlzdG9yeSB7CiAgJGlkeCA9IEAoR2V0LUhpc3Rv +cnlJbmRleCkKICBpZiAoJGlkeC5Db3VudCAtZXEgMCkgeyByZXR1cm4gfQogICRjdXRvZmYgPSAo +R2V0LURhdGUpLkFkZERheXMoLSRoaXN0UHJ1bmVEYXlzKQogICRwZXIgPSBAe307ICRrZWVwID0g +QCgpOyAkZHJvcCA9IEAoKQogIGZvcmVhY2ggKCRlIGluICRpZHgpIHsKICAgICR0Z3QgPSBbc3Ry +aW5nXSRlLnRhcmdldAogICAgaWYgKC1ub3QgJHBlci5Db250YWluc0tleSgkdGd0KSkgeyAkcGVy +WyR0Z3RdID0gMCB9CiAgICAkcGVyWyR0Z3RdID0gJHBlclskdGd0XSArIDEKICAgICRzbmFwID0g +Sm9pbi1QYXRoICRoaXN0b3J5RGlyICgiJCgkZS5pZCkuc25hcCIpCiAgICAkdG9vT2xkID0gJGZh +bHNlCiAgICBpZiAoVGVzdC1QYXRoICRzbmFwKSB7IGlmICgoR2V0LUl0ZW0gJHNuYXApLkxhc3RX +cml0ZVRpbWUgLWx0ICRjdXRvZmYpIHsgJHRvb09sZCA9ICR0cnVlIH0gfQogICAgaWYgKCgkcGVy +WyR0Z3RdIC1ndCAkaGlzdE1heFBlclRhcmdldCkgLW9yICR0b29PbGQpIHsgJGRyb3AgKz0gJGUg +fSBlbHNlIHsgJGtlZXAgKz0gJGUgfQogIH0KICBpZiAoJGRyb3AuQ291bnQgLWd0IDApIHsKICAg +IGZvcmVhY2ggKCRlIGluICRkcm9wKSB7ICRzbmFwID0gSm9pbi1QYXRoICRoaXN0b3J5RGlyICgi +JCgkZS5pZCkuc25hcCIpOyBpZiAoVGVzdC1QYXRoICRzbmFwKSB7IFJlbW92ZS1JdGVtICRzbmFw +IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9IH0KICAgIFdyaXRlLVN0YXRl +SnNvbiAkaGlzdG9yeUluZGV4ICRrZWVwCiAgfQp9CgojIFNpY2hlcmUgQXVmbG9lc3VuZyBlaW5l +cyByZWxhdGl2ZW4gWmllbHMgaW5uZXJoYWxiIHZvbiBQb3J0YWxSb290LgojIFByYWVmaXhwcnVl +ZnVuZyBNSVQgYW5nZWhhZW5ndGVtIFRyZW5uZXIgKHdpZSBweSByb290K29zLnNlcCkgLT4gU2No +d2VzdGVyLU9yZG5lcgojICh6LiBCLiBQb3J0YWxfVW5pb25fYWx0KSB3ZXJkZW4gTklDSFQgYWt6 +ZXB0aWVydC4KZnVuY3Rpb24gUmVzb2x2ZS1UYXJnZXQoW3N0cmluZ10kcmVsKSB7CiAgJGZ1bGwg +PSBKb2luLVBhdGggJFBvcnRhbFJvb3QgKCRyZWwgLXJlcGxhY2UgIi8iLCAiXCIpCiAgJHJvb3RG +dWxsID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RnVsbFBhdGgoJFBvcnRhbFJvb3QpCiAgJGZ1bGwg +PSBbU3lzdGVtLklPLlBhdGhdOjpHZXRGdWxsUGF0aCgkZnVsbCkKICAkc2VwID0gW1N5c3RlbS5J +Ty5QYXRoXTo6RGlyZWN0b3J5U2VwYXJhdG9yQ2hhcgogIGlmICgkZnVsbCAtbmUgJHJvb3RGdWxs +IC1hbmQgLW5vdCAkZnVsbC5TdGFydHNXaXRoKCRyb290RnVsbCArICRzZXAsIFtTeXN0ZW0uU3Ry +aW5nQ29tcGFyaXNvbl06Ok9yZGluYWxJZ25vcmVDYXNlKSkgeyByZXR1cm4gJG51bGwgfQogIHJl +dHVybiAkZnVsbAp9CgojIERhdGVpIG1vZWdsaWNoc3QgYXRvbWFyIGVyc2V0emVuICh3aWUgcHkg +b3MucmVwbGFjZSk6IEZpbGUuUmVwbGFjZSBiZWkgdm9yaGFuZGVuZW0gWmllbCwKIyBzb25zdCBN +b3ZlLiBWZXJtZWlkZXQgdGVpbC1zaWNodGJhcmUgRGF0ZWllbiBhdWYgZGVyIEZyZWlnYWJlIChr +ZWluIENvcHkrUmVtb3ZlKS4KZnVuY3Rpb24gR2V0LVRtcFBhdGgoW3N0cmluZ10kcGF0aCkgewog +ICMgRWluZGV1dGlnZXIgdG1wLU5hbWUgKFBJRCArIEdVSUQpOiBtZWhyZXJlIGdsZWljaHplaXRp +Z2UgTnV0emVyIGtvbGxpZGllcmVuIG5pY2h0IGF1ZiAiPGRhdGVpPi50bXAiLgogIHJldHVybiAo +InswfS57MX0uezJ9LnRtcCIgLWYgJHBhdGgsICRQSUQsIChbR3VpZF06Ok5ld0d1aWQoKS5Ub1N0 +cmluZygnTicpLlN1YnN0cmluZygwLCA4KSkpCn0KZnVuY3Rpb24gUmVwbGFjZS1GaWxlKFtzdHJp +bmddJHRtcCwgW3N0cmluZ10kcGF0aCkgewogICMgW0lPLkZpbGVdOjpSZXBsYWNlL01vdmUgc2lu +ZCBhdG9tYXIsIHNjaGVpdGVybiBhYmVyIGF1ZiBtYW5jaGVuIE5ldHpsYXVmd2Vya2VuLwogICMg +U01CLVNoYXJlcyAoSU9FeGNlcHRpb24pLiBEb3J0IHdlaWNoZW4gd2lyIGF1ZiBDb3B5K1JlbW92 +ZSBhdXM6IG5pY2h0IG1laHIgYXRvbWFyLAogICMgYWJlciBkYXMgU2NocmVpYmVuIGdlbGluZ3Qg +enV2ZXJsYWVzc2lnLiAoUHl0aG9uLUhlbGZlciBudXR6dCBvcy5yZXBsYWNlIC0+IHRvbGVyYW50 +LikKICB0cnkgewogICAgaWYgKFRlc3QtUGF0aCAkcGF0aCkgeyBbU3lzdGVtLklPLkZpbGVdOjpS +ZXBsYWNlKCR0bXAsICRwYXRoLCAkbnVsbCkgfQogICAgZWxzZSB7IFtTeXN0ZW0uSU8uRmlsZV06 +Ok1vdmUoJHRtcCwgJHBhdGgpIH0KICB9IGNhdGNoIHsKICAgIENvcHktSXRlbSAtTGl0ZXJhbFBh +dGggJHRtcCAtRGVzdGluYXRpb24gJHBhdGggLUZvcmNlCiAgICBSZW1vdmUtSXRlbSAtTGl0ZXJh +bFBhdGggJHRtcCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICB9Cn0KCiMg +LS0tIExva2FsZXMgT2VmZm5lbiAoT3JkbmVyL09mZmljZS1EYXRlaWVuKTogUGZhZCBub3JtYWxp +c2llcmVuICsgQWxsb3dsaXN0LVBydWVmdW5nIC0tLQpmdW5jdGlvbiBOb3JtYWxpemUtT3BlblBh +dGgoW3N0cmluZ10kcCkgewogICRwID0gKFtzdHJpbmddJHApLlRyaW0oKQogIGlmICgtbm90ICRw +KSB7IHJldHVybiAiIiB9CiAgJHAgPSAkcCAtcmVwbGFjZSAnXmZpbGU6JywgJycgICAgICAgICAg +IyBmaWxlOi1QcmFlZml4IGVudGZlcm5lbgogICRwID0gJHAgLXJlcGxhY2UgJy8nLCAnXCcgICAg +ICAgICAgICAgICMgU2xhc2hlcyAtPiBCYWNrc2xhc2hlcwogIGlmICgkcCAtbWF0Y2ggJ15cXHsy +LH0nKSB7ICRwID0gJ1xcJyArICgkcCAtcmVwbGFjZSAnXlxcKycsICcnKSB9ICAgIyAvL2hvc3Qg +Ynp3LiAvLy8vaG9zdCAtPiBcXGhvc3QgKFVOQykKICB0cnkgeyByZXR1cm4gW1N5c3RlbS5JTy5Q +YXRoXTo6R2V0RnVsbFBhdGgoJHApIH0gY2F0Y2ggeyByZXR1cm4gIiIgfSAgICMgY29sbGFiaWVy +dCAuLiAoVHJhdmVyc2FsLVNjaHV0eikKfQpmdW5jdGlvbiBUZXN0LU9wZW5BbGxvd2VkKFtzdHJp +bmddJGZ1bGwpIHsKICBpZiAoLW5vdCAkZnVsbCkgeyByZXR1cm4gJGZhbHNlIH0KICAkZmwgPSAk +ZnVsbC5Ub0xvd2VyKCkKICBmb3JlYWNoICgkciBpbiAkb3BlblJvb3RzKSB7IGlmICgkciAtYW5k +ICRmbC5TdGFydHNXaXRoKChbc3RyaW5nXSRyKS5Ub0xvd2VyKCkpKSB7IHJldHVybiAkdHJ1ZSB9 +IH0KICAjIFNlZ21lbnQtVHJlZmZlciBOVVIgaW5uZXJoYWxiIHZlcnRyYXVlbnN3dWVyZGlnZXIg +V3VyemVsbiAoSW50cmFuZXQtSG9zdC9iZW5hbm50ZSBRdWVsbGVuKSBvZGVyIGF1ZiBlaW5lbSBM +YXVmd2VyayBYOlwKICAkaW5TY29wZSA9ICgkZnVsbCAtbWF0Y2ggJ15bQS1aYS16XTpbXFwvXScp +CiAgaWYgKC1ub3QgJGluU2NvcGUpIHsgZm9yZWFjaCAoJHNjIGluICRvcGVuU2VnbWVudFNjb3Bl +cykgeyBpZiAoJHNjIC1hbmQgJGZsLlN0YXJ0c1dpdGgoKFtzdHJpbmddJHNjKS5Ub0xvd2VyKCkp +KSB7ICRpblNjb3BlID0gJHRydWU7IGJyZWFrIH0gfSB9CiAgaWYgKCRpblNjb3BlKSB7IGZvcmVh +Y2ggKCRzIGluICgkZnVsbCAtc3BsaXQgJ1xcJykpIHsgaWYgKCRzIC1uZSAiIikgeyBmb3JlYWNo +ICgkYSBpbiAkb3BlblNlZ21lbnRzKSB7IGlmICgkcy5Ub0xvd2VyKCkgLWVxIChbc3RyaW5nXSRh +KS5Ub0xvd2VyKCkpIHsgcmV0dXJuICR0cnVlIH0gfSB9IH0gfQogIHJldHVybiAkZmFsc2UKfQpm +dW5jdGlvbiBUZXN0LU9wZW5FeHQoW3N0cmluZ10kZnVsbCkgewogICRleHQgPSAoW1N5c3RlbS5J +Ty5QYXRoXTo6R2V0RXh0ZW5zaW9uKCRmdWxsKSkuVHJpbVN0YXJ0KCcuJykuVG9Mb3dlcigpCiAg +aWYgKC1ub3QgJGV4dCkgeyByZXR1cm4gJGZhbHNlIH0KICBmb3JlYWNoICgkZSBpbiAkb3BlbkV4 +dCkgeyBpZiAoJGV4dCAtZXEgKFtzdHJpbmddJGUpLlRvTG93ZXIoKSkgeyByZXR1cm4gJHRydWUg +fSB9CiAgcmV0dXJuICRmYWxzZQp9CmZ1bmN0aW9uIFRlc3QtSXNFeGVjKFtzdHJpbmddJGZ1bGwp +IHsKICAkZXh0ID0gKFtTeXN0ZW0uSU8uUGF0aF06OkdldEV4dGVuc2lvbigkZnVsbCkpLlRyaW1T +dGFydCgnLicpLlRvTG93ZXIoKQogIGZvcmVhY2ggKCRlIGluICRleGVjRXh0KSB7IGlmICgkZXh0 +IC1lcSAoW3N0cmluZ10kZSkuVG9Mb3dlcigpKSB7IHJldHVybiAkdHJ1ZSB9IH0KICByZXR1cm4g +JGZhbHNlCn0KZnVuY3Rpb24gVGVzdC1FeGVBbGxvd2VkKFtzdHJpbmddJGZ1bGwpIHsKICBpZiAo +LW5vdCAkZnVsbCkgeyByZXR1cm4gJGZhbHNlIH0KICAkZmwgPSAkZnVsbC5Ub0xvd2VyKCkKICBm +b3JlYWNoICgkciBpbiAkb3BlbkV4ZVJvb3RzKSB7IGlmICgkciAtYW5kICRmbC5TdGFydHNXaXRo +KChbc3RyaW5nXSRyKS5Ub0xvd2VyKCkpKSB7IHJldHVybiAkdHJ1ZSB9IH0KICByZXR1cm4gJGZh +bHNlCn0KCiMgRGF0ZWkgbWl0IFZlcnNpb25zLS9Lb25mbGlrdC1WZXJmb2xndW5nIChEYXRlbiAr +IEFydGlrZWwgKyBhdXNnZWxhZ2VydGUgQm9keS1EYXRlaWVuKT8KZnVuY3Rpb24gVGVzdC1UcmFj +a2VkKFtzdHJpbmddJG5hbWUpIHsKICByZXR1cm4gKCRhbGxvd1RleHQgLWNvbnRhaW5zICRuYW1l +KSAtb3IgKCRuYW1lIC1tYXRjaCAkcmVBcnRpY2xlKSAtb3IgKCRuYW1lIC1tYXRjaCAkcmVCb2R5 +KQp9CgojIC0tLS0gS29sbGFib3JhdGlvbnMtU3RhdGUtSGVsZmVyIChQaGFzZSA0KSAtLS0tCiRt +YXhKc29uID0gMTZNQiAgICMgUGhhc2UgOTogT2JlcmdyZW56ZSBmdWVyIEpTT04tQm9keXMgKERv +Uy1TY2h1dHopCmZ1bmN0aW9uIFJlYWQtQm9keSgkY3R4KSB7CiAgJGxlbiA9ICRjdHguUmVxdWVz +dC5Db250ZW50TGVuZ3RoNjQKICBpZiAoJGxlbiAtbHQgMCkgeyB0aHJvdyAiTGFlbmdlIHVuYmVr +YW5udCAoY2h1bmtlZCBuaWNodCBlcmxhdWJ0KSIgfSAgICMga2VpbiB1bmJlZ3Jlbnp0ZXMgTGVz +ZW4KICBpZiAoJGxlbiAtZ3QgJG1heEpzb24pIHsgdGhyb3cgIkFuZnJhZ2UgenUgZ3Jvc3MiIH0K +ICAkcmVhZGVyID0gTmV3LU9iamVjdCBTeXN0ZW0uSU8uU3RyZWFtUmVhZGVyKCRjdHguUmVxdWVz +dC5JbnB1dFN0cmVhbSwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOCkKICAkYiA9ICRyZWFk +ZXIuUmVhZFRvRW5kKCk7ICRyZWFkZXIuQ2xvc2UoKTsgcmV0dXJuICRiCn0KZnVuY3Rpb24gR2V0 +LVN0YXRlTmFtZShbc3RyaW5nXSRraW5kLCBbc3RyaW5nXSR0YXJnZXQpIHsKICAkayA9ICgka2lu +ZCAtcmVwbGFjZSAiW15hLXpBLVowLTlfLV0rIiwgIi0iKTsgaWYgKCRrLkxlbmd0aCAtZ3QgNDAp +IHsgJGsgPSAkay5TdWJzdHJpbmcoMCwgNDApIH0KICAkdCA9ICgkdGFyZ2V0IC1yZXBsYWNlICJb +XmEtekEtWjAtOV8tXSsiLCAiLSIpOyBpZiAoJHQuTGVuZ3RoIC1ndCA4MCkgeyAkdCA9ICR0LlN1 +YnN0cmluZygwLCA4MCkgfQogIHJldHVybiAoInswfV9fezF9Lmpzb24iIC1mICRrLCAkdCkKfQpm +dW5jdGlvbiBSZWFkLVN0YXRlSnNvbihbc3RyaW5nXSRwYXRoLCAkZGVmYXVsdCkgewogIGlmIChU +ZXN0LVBhdGggJHBhdGgpIHsgdHJ5IHsgcmV0dXJuIChHZXQtQ29udGVudCAkcGF0aCAtUmF3IC1F +bmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbikgfSBjYXRjaCB7IHJldHVybiAkZGVmYXVs +dCB9IH0KICByZXR1cm4gJGRlZmF1bHQKfQpmdW5jdGlvbiBXcml0ZS1TdGF0ZUpzb24oW3N0cmlu +Z10kcGF0aCwgJG9iaikgewogICRqc29uID0gJG9iaiB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAx +MiAtQ29tcHJlc3MKICAkdG1wID0gR2V0LVRtcFBhdGggJHBhdGgKICBbU3lzdGVtLklPLkZpbGVd +OjpXcml0ZUFsbFRleHQoJHRtcCwgJGpzb24sICR1dGY4KQogIFJlcGxhY2UtRmlsZSAkdG1wICRw +YXRoCn0KZnVuY3Rpb24gTm93LUlzbyB7IHJldHVybiAoR2V0LURhdGUgLUZvcm1hdCAieXl5eS1N +TS1kZFRISDptbTpzcyIpIH0KZnVuY3Rpb24gQWRkLUFjdGl2aXR5KFtzdHJpbmddJGFjdGlvbiwg +W3N0cmluZ10kdGFyZ2V0KSB7CiAgJGl0ZW1zID0gQChSZWFkLVN0YXRlSnNvbiAkYWN0aXZpdHlG +aWxlIEAoKSkKICAkZW50cnkgPSBbb3JkZXJlZF1AeyB0cyA9IChOb3ctSXNvKTsgdXNlciA9ICRt +ZTsgbmFtZSA9ICRtZU5hbWU7IHJvbGUgPSAkcm9sZTsgYWN0aW9uID0gJGFjdGlvbjsgdGFyZ2V0 +ID0gJHRhcmdldCB9CiAgJGl0ZW1zID0gQCgkZW50cnkpICsgJGl0ZW1zCiAgaWYgKCRpdGVtcy5D +b3VudCAtZ3QgJGFjdGl2aXR5TWF4KSB7ICRpdGVtcyA9ICRpdGVtc1swLi4oJGFjdGl2aXR5TWF4 +IC0gMSldIH0KICBXcml0ZS1TdGF0ZUpzb24gJGFjdGl2aXR5RmlsZSAkaXRlbXMKfQpmdW5jdGlv +biBHZXQtQWN0aXZlTG9ja3MgewogICRvdXQgPSBAKCkKICBpZiAoVGVzdC1QYXRoICRsb2Nrc0Rp +cikgewogICAgR2V0LUNoaWxkSXRlbSAkbG9ja3NEaXIgLUZpbHRlciAqLmpzb24gfCBGb3JFYWNo +LU9iamVjdCB7CiAgICAgICRkID0gUmVhZC1TdGF0ZUpzb24gJF8uRnVsbE5hbWUgJG51bGwKICAg +ICAgaWYgKCRkKSB7CiAgICAgICAgJGFnZSA9IChOZXctVGltZVNwYW4gLVN0YXJ0ICRfLkxhc3RX +cml0ZVRpbWUgLUVuZCAoR2V0LURhdGUpKS5Ub3RhbFNlY29uZHMKICAgICAgICBpZiAoJGFnZSAt +Z3QgJGxvY2tUdGwpIHsgUmVtb3ZlLUl0ZW0gJF8uRnVsbE5hbWUgLUZvcmNlIC1FcnJvckFjdGlv +biBTaWxlbnRseUNvbnRpbnVlIH0KICAgICAgICBlbHNlIHsgJG91dCArPSAkZCB9CiAgICAgIH0K +ICAgIH0KICB9CiAgcmV0dXJuICRvdXQKfQpmdW5jdGlvbiBHZXQtQWxsRHJhZnRzIHsKICAkb3V0 +ID0gQCgpCiAgaWYgKFRlc3QtUGF0aCAkZHJhZnRzRGlyKSB7CiAgICAkY3V0b2ZmID0gKEdldC1E +YXRlKS5BZGREYXlzKC0xNCkgICAjIFBoYXNlIDk6IGFsdGUgRW50d3VlcmZlICg+MTQgVGFnZSkg +YXVmcmFldW1lbgogICAgR2V0LUNoaWxkSXRlbSAkZHJhZnRzRGlyIC1GaWx0ZXIgKi5qc29uIHwg +Rm9yRWFjaC1PYmplY3QgewogICAgICBpZiAoJF8uTGFzdFdyaXRlVGltZSAtbHQgJGN1dG9mZikg +eyBSZW1vdmUtSXRlbSAkXy5GdWxsTmFtZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29u +dGludWU7IHJldHVybiB9CiAgICAgICRkID0gUmVhZC1TdGF0ZUpzb24gJF8uRnVsbE5hbWUgJG51 +bGw7IGlmICgkZCkgeyAkb3V0ICs9ICRkIH0KICAgIH0KICB9CiAgcmV0dXJuICRvdXQKfQoKIyAt +LS0tIEFsdC1Eb2t1LU1pZ3JhdGlvbiAoUGhhc2UgMTAsIG51ciBsZXNlbmQpIC0tLS0KIyBEZXIg +S29udmVydGVyIG1pZ3JhdGVfZG9jcy5weSBzY2hyZWlidCBzZWluZW4gV2Vnd2VyZi1PdXRwdXQg +bmFjaCBoZWxmZXJcbWlncmF0aW9uXAojIChhcnRpY2xlc1w8c2x1Zz4uanNvbiwgcHJldmlld1w8 +c2x1Zz4uaHRtbCwgcmVwb3J0Lmpzb24sIG1hbmlmZXN0Lmpzb24pLiBEaWVzZQojIFJlYWRlciBs +aWVmZXJuIGRpZSBrb252ZXJ0aWVydGVuIEFydGlrZWwgYW5zIEFkbWluLU1pZ3JhdGlvbnMtUGFu +ZWw7IGRhcwojIFZlcm9lZmZlbnRsaWNoZW4gbGFldWZ0IHVlYmVyIGRlbiBub3JtYWxlbiBFZGl0 +b3IgKyAvYXBpL3B1Ymxpc2guCiMgSGlud2VpczogbWlncmF0aW9uXCBpc3QgZ2VuZXJpZXJ0ZXIg +V2Vnd2VyZi1PdXRwdXQgdW5kIGhpZXIgaS5kLlIuIGxlZXIgLT4KIyBHZXQtTWlncmF0aW9uTGlz +dCBnaWJ0IEAoKSB6dXJ1ZWNrLCBHZXQtTWlncmF0aW9uQXJ0aWNsZSAkbnVsbC4gS2VpbiBGZWhs +ZXIuCiRtaWdyYXRpb25EaXIgICAgID0gSm9pbi1QYXRoICRoZXJlICJtaWdyYXRpb24iCiRtaWdB +cnRpY2xlc0RpciAgID0gSm9pbi1QYXRoICRtaWdyYXRpb25EaXIgImFydGljbGVzIgokbWlnU2x1 +Z1JlICAgICAgICA9ICdeW2EtejAtOV9dezEsODB9JCcKZnVuY3Rpb24gR2V0LU1pZ3JhdGlvbkxp +c3QgewogICRyZXBvcnQgPSBSZWFkLVN0YXRlSnNvbiAoSm9pbi1QYXRoICRtaWdyYXRpb25EaXIg +InJlcG9ydC5qc29uIikgJG51bGwKICBpZiAoLW5vdCAkcmVwb3J0IC1vciAtbm90ICRyZXBvcnQu +aXRlbXMpIHsgcmV0dXJuIEAoKSB9CiAgJG91dCA9IEAoKQogIGZvcmVhY2ggKCRpdCBpbiAkcmVw +b3J0Lml0ZW1zKSB7CiAgICAkc2x1ZyA9IFtzdHJpbmddJGl0LnNsdWcKICAgIGlmICgkc2x1ZyAt +bm90bWF0Y2ggJG1pZ1NsdWdSZSkgeyBjb250aW51ZSB9CiAgICAkYXZhaWxhYmxlID0gVGVzdC1Q +YXRoIChKb2luLVBhdGggJG1pZ0FydGljbGVzRGlyICIkc2x1Zy5qc29uIikgLVBhdGhUeXBlIExl +YWYKICAgICR3ID0gQCgpOyBpZiAoJGl0Lndhcm5pbmdzKSB7ICR3ID0gQCgkaXQud2FybmluZ3Mp +IH0KICAgICRraW5kID0gaWYgKCRpdC5raW5kKSB7IFtzdHJpbmddJGl0LmtpbmQgfSBlbHNlIHsg +ImFydGljbGUiIH0KICAgICRjbHMgPSBpZiAoJGl0LmNsYXNzaWZpY2F0aW9uKSB7IFtzdHJpbmdd +JGl0LmNsYXNzaWZpY2F0aW9uIH0gZWxzZSB7ICIiIH0KICAgICRmb2xkZXIgPSBpZiAoJGl0LmZv +bGRlcikgeyBbc3RyaW5nXSRpdC5mb2xkZXIgfSBlbHNlIHsgIiIgfQogICAgJHJlZGlyZWN0ID0g +aWYgKCRpdC5yZWRpcmVjdCkgeyBbc3RyaW5nXSRpdC5yZWRpcmVjdCB9IGVsc2UgeyAiIiB9CiAg +ICAkb3V0ICs9IFtvcmRlcmVkXUB7IHNsdWcgPSAkc2x1Zzsgc291cmNlID0gW3N0cmluZ10kaXQu +cmVsOyB0aXRsZSA9IFtzdHJpbmddJGl0LnRpdGxlOwogICAgICBkYXRlID0gW3N0cmluZ10kaXQu +ZGF0ZTsga2luZCA9ICRraW5kOyBjbGFzc2lmaWNhdGlvbiA9ICRjbHM7IGZvbGRlciA9ICRmb2xk +ZXI7IHJlZGlyZWN0ID0gJHJlZGlyZWN0OyB3YXJuaW5ncyA9ICR3OyBzdGF0cyA9ICRpdC5zdGF0 +czsgYXZhaWxhYmxlID0gW2Jvb2xdJGF2YWlsYWJsZSB9CiAgfQogIHJldHVybiAsJG91dAp9CmZ1 +bmN0aW9uIEdldC1NaWdyYXRpb25BcnRpY2xlKFtzdHJpbmddJHNsdWcpIHsKICBpZiAoJHNsdWcg +LW5vdG1hdGNoICRtaWdTbHVnUmUpIHsgcmV0dXJuICRudWxsIH0KICAkYmFzZSA9IFtTeXN0ZW0u +SU8uUGF0aF06OkdldEZ1bGxQYXRoKCRtaWdBcnRpY2xlc0RpcikKICAkZnVsbCA9IFtTeXN0ZW0u +SU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBhdGggJG1pZ0FydGljbGVzRGlyICIkc2x1Zy5q +c29uIikpCiAgaWYgKC1ub3QgJGZ1bGwuU3RhcnRzV2l0aCgkYmFzZSArIFtTeXN0ZW0uSU8uUGF0 +aF06OkRpcmVjdG9yeVNlcGFyYXRvckNoYXIsIFtTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbl06Ok9y +ZGluYWxJZ25vcmVDYXNlKSkgeyByZXR1cm4gJG51bGwgfQogIGlmICgtbm90IChUZXN0LVBhdGgg +JGZ1bGwgLVBhdGhUeXBlIExlYWYpKSB7IHJldHVybiAkbnVsbCB9CiAgcmV0dXJuIChSZWFkLVN0 +YXRlSnNvbiAkZnVsbCAkbnVsbCkKfQoKIyAtLS0tIFJvbGxlbi1WZXJ3YWx0dW5nIChQaGFzZSA3 +KTogYWRtaW5zLnR4dCAvIHJlZGFrdGV1cmUudHh0IGxlc2VuK3NjaHJlaWJlbiAtLS0tCiRrZW5u +dW5nUmUgPSAnXltBLVphLXowLTlfXXsyLDMyfSQnCmZ1bmN0aW9uIFJlYWQtUm9sZVBhaXJzKFtz +dHJpbmddJGZpbGVOYW1lKSB7CiAgJG91dCA9IEAoKQogICRwID0gSm9pbi1QYXRoICRoZXJlICRm +aWxlTmFtZQogIGlmIChUZXN0LVBhdGggJHApIHsKICAgIEdldC1Db250ZW50ICRwIC1FbmNvZGlu +ZyBVVEY4IHwgRm9yRWFjaC1PYmplY3QgewogICAgICAkbGluZSA9ICRfLlRyaW0oKQogICAgICBp +ZiAoJGxpbmUgLWFuZCAtbm90ICRsaW5lLlN0YXJ0c1dpdGgoIiMiKSkgewogICAgICAgICRwYXJ0 +cyA9ICRsaW5lLlNwbGl0KCI7IiwgMikKICAgICAgICAka2VubnVuZyA9ICRwYXJ0c1swXS5Ucmlt +KCkKICAgICAgICBpZiAoJGtlbm51bmcpIHsKICAgICAgICAgICRuYW1lID0gIiI7IGlmICgkcGFy +dHMuQ291bnQgLWd0IDEpIHsgJG5hbWUgPSAkcGFydHNbMV0uVHJpbSgpIH0KICAgICAgICAgICRv +dXQgKz0gW29yZGVyZWRdQHsga2VubnVuZyA9ICRrZW5udW5nOyBuYW1lID0gJG5hbWUgfQogICAg +ICAgIH0KICAgICAgfQogICAgfQogIH0KICByZXR1cm4gLCRvdXQKfQpmdW5jdGlvbiBHZXQtUm9s +ZUhlYWRlcihbc3RyaW5nXSRwYXRoKSB7CiAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkcGF0aCkpIHsg +cmV0dXJuICIiIH0KICAkbGluZXMgPSBAKCkKICBmb3JlYWNoICgkcmF3IGluIChHZXQtQ29udGVu +dCAkcGF0aCAtRW5jb2RpbmcgVVRGOCkpIHsKICAgICRzID0gJHJhdy5UcmltKCkKICAgIGlmICgk +cyAtZXEgIiIgLW9yICRzLlN0YXJ0c1dpdGgoIiMiKSkgeyAkbGluZXMgKz0gJHJhdyB9IGVsc2Ug +eyBicmVhayB9CiAgfQogIHJldHVybiAoJGxpbmVzIC1qb2luICJgbiIpCn0KZnVuY3Rpb24gV3Jp +dGUtUm9sZUxpc3QoW3N0cmluZ10kZmlsZU5hbWUsICRlbnRyaWVzKSB7CiAgJHAgPSBKb2luLVBh +dGggJGhlcmUgJGZpbGVOYW1lCiAgJGhlYWRlciA9IEdldC1Sb2xlSGVhZGVyICRwCiAgaWYgKFRl +c3QtUGF0aCAkcCkgeyBDb3B5LUl0ZW0gJHAgIiRwLmJhayIgLUZvcmNlIH0KICAkYm9keSA9IEAo +KQogIGZvcmVhY2ggKCRlIGluICRlbnRyaWVzKSB7CiAgICAkayA9IChbc3RyaW5nXSRlLmtlbm51 +bmcpLlRyaW0oKTsgJG4gPSAoW3N0cmluZ10kZS5uYW1lKS5UcmltKCkKICAgIGlmICgtbm90ICRr +KSB7IGNvbnRpbnVlIH0KICAgIGlmICgkbikgeyAkYm9keSArPSAiJGs7JG4iIH0gZWxzZSB7ICRi +b2R5ICs9ICRrIH0KICB9CiAgJHRleHQgPSAiIjsgaWYgKCRoZWFkZXIpIHsgJHRleHQgPSAkaGVh +ZGVyICsgImBuIiB9CiAgJHRleHQgKz0gKCRib2R5IC1qb2luICJgbiIpICsgImBuIgogICR0bXAg +PSBHZXQtVG1wUGF0aCAkcAogIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkdG1wLCAk +dGV4dCwgJHV0ZjgpCiAgUmVwbGFjZS1GaWxlICR0bXAgJHAKfQojIFBlcnNvbmVuc3BlaWNoZXIg +KFBlcnNvbmFsbGlzdGUsIGF1Y2ggUGVyc29uZW4gT0hORSBSb2xsZS9LZW5udW5nKTogZG9rdW1l +bnRlL2pzb24vcGVyc29uYWwuanNvbgpmdW5jdGlvbiBSZWFkLVBlcnNvbmFsIHsKICAkZnVsbCA9 +IFJlc29sdmUtVGFyZ2V0ICJkb2t1bWVudGUvanNvbi9wZXJzb25hbC5qc29uIgogICRhcnIgPSBA +KCkKICBpZiAoJGZ1bGwgLWFuZCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkZnVsbCkpIHsKICAg +IHRyeSB7ICRyYXcgPSBHZXQtQ29udGVudCAkZnVsbCAtUmF3IC1FbmNvZGluZyBVVEY4OyBpZiAo +JHJhdyAtYW5kICRyYXcuVHJpbSgpKSB7ICRhcnIgPSBAKCRyYXcgfCBDb252ZXJ0RnJvbS1Kc29u +KSB9IH0gY2F0Y2ggeyAkYXJyID0gQCgpIH0KICB9CiAgcmV0dXJuICxAKCRhcnIgfCBXaGVyZS1P +YmplY3QgeyAkXyAtbmUgJG51bGwgfSkKfQpmdW5jdGlvbiBHZXQtUm9sZXNQYXlsb2FkIHsKICBy +ZXR1cm4gQHsgb2sgPSAkdHJ1ZTsgYWRtaW5zID0gQChSZWFkLVJvbGVQYWlycyAkYWRtaW5GaWxl +KTsgcmVkYWt0ZXVyZSA9IEAoUmVhZC1Sb2xlUGFpcnMgJHJlZGFrRmlsZSk7CiAgICBwZXJzb25h +bCA9IEAoUmVhZC1QZXJzb25hbCk7CiAgICBtZSA9ICRtZUxvd2VyOyBtZVJvbGUgPSAkcm9sZTsg +ZW1lcmdlbmN5ID0gQCgkZW1lcmdlbmN5TG93ZXIpOwogICAgcmVzdGFydEhpbnQgPSAiUm9sbGVu +LUFlbmRlcnVuZ2VuIHdpcmtlbiBlcnN0IGJlaW0gTkFFQ0hTVEVOIFN0YXJ0IGRlcyBQZmxlZ2Ut +SGVsZmVycyBkZXIgYmV0cm9mZmVuZW4gUGVyc29uLiBXZXIgZ2VyYWRlIGFuZ2VtZWxkZXQgaXN0 +LCBiZWhhZWx0IGJpcyBkYWhpbiBkaWUgYmlzaGVyaWdlIFJvbGxlLiIgfQp9CgojIC0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tCiMgMykgSFRUUC1IZWxmZXIKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokbWltZSA9IEB7 +CiAgIi5odG1sIj0idGV4dC9odG1sIjsgIi5odG0iPSJ0ZXh0L2h0bWwiOyAiLmpzIj0iYXBwbGlj +YXRpb24vamF2YXNjcmlwdDsgY2hhcnNldD11dGYtOCI7CiAgIi5jc3MiPSJ0ZXh0L2NzczsgY2hh +cnNldD11dGYtOCI7ICIuanNvbiI9ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiOwog +ICIucG5nIj0iaW1hZ2UvcG5nIjsgIi5qcGciPSJpbWFnZS9qcGVnIjsgIi5qcGVnIj0iaW1hZ2Uv +anBlZyI7ICIuZ2lmIj0iaW1hZ2UvZ2lmIjsKICAiLndlYnAiPSJpbWFnZS93ZWJwIjsgIi5ibXAi +PSJpbWFnZS9ibXAiOyAiLnN2ZyI9ImltYWdlL3N2Zyt4bWwiOyAiLmljbyI9ImltYWdlL3gtaWNv +biI7CiAgIi5wZGYiPSJhcHBsaWNhdGlvbi9wZGYiOyAiLnR4dCI9InRleHQvcGxhaW47IGNoYXJz +ZXQ9dXRmLTgiOyAiLnhtbCI9ImFwcGxpY2F0aW9uL3htbCI7CiAgIi53b2ZmIj0iZm9udC93b2Zm +IjsgIi53b2ZmMiI9ImZvbnQvd29mZjIiOyAiLnR0ZiI9ImZvbnQvdHRmIjsgIi5lb3QiPSJhcHBs +aWNhdGlvbi92bmQubXMtZm9udG9iamVjdCI7CiAgIi5kb2MiPSJhcHBsaWNhdGlvbi9tc3dvcmQi +OyAiLmRvY3giPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQu +d29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCI7CiAgIi54bHMiPSJhcHBsaWNhdGlvbi92bmQubXMt +ZXhjZWwiOyAiLnhsc3giPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9j +dW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCI7CiAgIi5wcHQiPSJhcHBsaWNhdGlvbi92bmQubXMt +cG93ZXJwb2ludCI7ICIucHB0eCI9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZp +Y2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24iCn0KCmZ1bmN0aW9uIFNlbmQt +SnNvbigkY3R4LCAkb2JqLCBbaW50XSRzdGF0dXMgPSAyMDApIHsKICAkanNvbiA9ICRvYmogfCBD +b252ZXJ0VG8tSnNvbiAtQ29tcHJlc3MgLURlcHRoIDEyCiAgJGJ5dGVzID0gJHV0ZjguR2V0Qnl0 +ZXMoJGpzb24pCiAgJGN0eC5SZXNwb25zZS5TdGF0dXNDb2RlID0gJHN0YXR1cwogICRjdHguUmVz +cG9uc2UuQ29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIKICAj +IEtlaW4gJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKicgKFBoYXNlIDkpIC0gc2FtZS1v +cmlnaW4gYnJhdWNodCBlcyBuaWNodC4KICAkY3R4LlJlc3BvbnNlLk91dHB1dFN0cmVhbS5Xcml0 +ZSgkYnl0ZXMsIDAsICRieXRlcy5MZW5ndGgpCiAgJGN0eC5SZXNwb25zZS5PdXRwdXRTdHJlYW0u +Q2xvc2UoKQp9CgojIENTUkYtU2NodXR6IChQaGFzZSA5KTogT3JpZ2luL1JlZmVyZXIgbXVzcyBM +b29wYmFjayBzZWluIG9kZXIgZ2FueiBmZWhsZW4uCiRsb29wYmFja0hvc3RzID0gQCgiMTI3LjAu +MC4xIiwgImxvY2FsaG9zdCIsICI6OjEiKQpmdW5jdGlvbiBUZXN0LUNzcmZPaygkcmVxKSB7CiAg +IyBPcmlnaW4gVk9SSEFOREVOIChhdWNoIGxlZXIvIm51bGwiKSAtPiBtdXNzIExvb3BiYWNrIHNl +aW4gKFBhcml0YWV0IHp1IHB5KS4gU29uc3QgUmVmZXJlci4KICAka2V5cyA9ICRyZXEuSGVhZGVy +cy5BbGxLZXlzCiAgaWYgKCRrZXlzIC1jb250YWlucyAiT3JpZ2luIikgeyAkdSA9ICRyZXEuSGVh +ZGVyc1siT3JpZ2luIl0gfQogIGVsc2VpZiAoJGtleXMgLWNvbnRhaW5zICJSZWZlcmVyIikgeyAk +dSA9ICRyZXEuSGVhZGVyc1siUmVmZXJlciJdIH0KICBlbHNlIHsgcmV0dXJuICR0cnVlIH0gICAg +ICAgICAgICAjIHdlZGVyIE9yaWdpbiBub2NoIFJlZmVyZXI6IHNhbWUtb3JpZ2luIEdFVCAvIGN1 +cmwgLyBzZW5kQmVhY29uCiAgdHJ5IHsgJGggPSAoW1VyaV0kdSkuSG9zdCB9IGNhdGNoIHsgcmV0 +dXJuICRmYWxzZSB9CiAgcmV0dXJuICgkbG9vcGJhY2tIb3N0cyAtY29udGFpbnMgJGgpCn0KCmZ1 +bmN0aW9uIFNlbmQtRmlsZSgkY3R4LCBbc3RyaW5nXSRmdWxsKSB7CiAgaWYgKC1ub3QgKFRlc3Qt +UGF0aCAkZnVsbCAtUGF0aFR5cGUgTGVhZikpIHsgJGN0eC5SZXNwb25zZS5TdGF0dXNDb2RlID0g +NDA0OyAkY3R4LlJlc3BvbnNlLkNsb3NlKCk7IHJldHVybiB9CiAgJGV4dCA9IFtTeXN0ZW0uSU8u +UGF0aF06OkdldEV4dGVuc2lvbigkZnVsbCkuVG9Mb3dlcigpCiAgJGN0ID0gJG1pbWVbJGV4dF07 +IGlmICgtbm90ICRjdCkgeyAkY3QgPSAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiB9CiAgJGN0 +eC5SZXNwb25zZS5Db250ZW50VHlwZSA9ICRjdAogICRmcyA9IFtTeXN0ZW0uSU8uRmlsZV06Ok9w +ZW5SZWFkKCRmdWxsKQogIHRyeSB7CiAgICAkY3R4LlJlc3BvbnNlLkNvbnRlbnRMZW5ndGg2NCA9 +ICRmcy5MZW5ndGgKICAgICRmcy5Db3B5VG8oJGN0eC5SZXNwb25zZS5PdXRwdXRTdHJlYW0sIDY1 +NTM2KSAgICMgc3RyZWFtZW4gKGF1Y2ggZ3Jvc3NlIERhdGVpZW4pCiAgfSBmaW5hbGx5IHsgJGZz +LkNsb3NlKCk7ICRjdHguUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkgfQp9CgojIC0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tCiMgNCkgU2VydmVyIHN0YXJ0ZW4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokbGlz +dGVuZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5OZXQuSHR0cExpc3RlbmVyCiRsaXN0ZW5lci5QcmVm +aXhlcy5BZGQoImh0dHA6Ly8xMjcuMC4wLjE6JFBvcnQvIikgICAjIG51ciBMb29wYmFjayAtPiBr +ZWluZSBBZG1pbi1SZWNodGUgbm9ldGlnCnRyeSB7ICRsaXN0ZW5lci5TdGFydCgpIH0gY2F0Y2gg +ewogIFdyaXRlLUhvc3QgIktvbm50ZSBQb3J0ICRQb3J0IG5pY2h0IGJpbmRlbjogJCgkXy5FeGNl +cHRpb24uTWVzc2FnZSkiCiAgZXhpdCAxCn0KV3JpdGUtSG9zdCAiUG9ydGFsLVBmbGVnZS1IZWxm +ZXIgbGFldWZ0OiBodHRwOi8vMTI3LjAuMC4xOiRQb3J0LyAgKCRtZSA6ICRtZU5hbWUgLyBSb2xs +ZTogJHJvbGUpIgpXcml0ZS1Mb2cgIlNFUlZFUiBTVEFSVCAoUG9ydCAkUG9ydCwgJG1lPSRyb2xl +KSIKCndoaWxlICgkbGlzdGVuZXIuSXNMaXN0ZW5pbmcpIHsKICAkY3R4ID0gJG51bGwKICAjIEdl +dENvbnRleHQgYmxvY2tpZXJ0IGJpcyB6dW0gbmFlY2hzdGVuIFJlcXVlc3QgLT4gZGVyIEhlbGZl +ciB1ZWJlcnN0ZWh0IGJlbGllYmlnCiAgIyBsYW5nZSBJZGxlLVplaXRlbiAoa2VpbiBUaW1lb3V0 +LCBrZWluIEF1dG8tU2h1dGRvd24pLiBUcmFuc2llbnRlIEZlaGxlciB3ZXJkZW4gTklDSFQKICAj +IGFscyBBYmJydWNoIGdld2VydGV0IChzb25zdCBzdHVlcmJlIGRlciBTZXJ2ZXIpOyBudXIgd2Vu +biBkZXIgTGlzdGVuZXIgd2lya2xpY2gKICAjIGdlc3RvcHB0IHd1cmRlLCB2ZXJsYXNzZW4gd2ly +IGRpZSBTY2hsZWlmZSBzYXViZXIuCiAgdHJ5IHsgJGN0eCA9ICRsaXN0ZW5lci5HZXRDb250ZXh0 +KCkgfQogIGNhdGNoIHsKICAgIGlmICgkbGlzdGVuZXIuSXNMaXN0ZW5pbmcpIHsgU3RhcnQtU2xl +ZXAgLU1pbGxpc2Vjb25kcyAyMDA7IGNvbnRpbnVlIH0KICAgIGJyZWFrCiAgfQogIGlmICgkbnVs +bCAtZXEgJGN0eCkgeyBjb250aW51ZSB9CiAgdHJ5IHsKICAgICRyZXEgPSAkY3R4LlJlcXVlc3QK +ICAgICRwYXRoID0gJHJlcS5VcmwuQWJzb2x1dGVQYXRoCgogICAgIyAtLS0tIE9QVElPTlM6IGJl +d3Vzc3QgT0hORSBDT1JTLUZyZWlnYWJlIChQaGFzZSA5KSAtPiBjcm9zcy1vcmlnaW4gUHJlZmxp +Z2h0cyBzY2hlaXRlcm4gLS0tLQogICAgaWYgKCRyZXEuSHR0cE1ldGhvZCAtZXEgIk9QVElPTlMi +KSB7CiAgICAgICRjdHguUmVzcG9uc2UuU3RhdHVzQ29kZSA9IDIwNDsgJGN0eC5SZXNwb25zZS5D +bG9zZSgpOyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSBDU1JGLVNjaHV0eiAoUGhhc2UgOSk6 +IGZyZW1kZXIgT3JpZ2luIGRhcmYgL2FwaS8qIG5pY2h0IGF1c2xvZXNlbiAtLS0tCiAgICBpZiAo +JHBhdGguU3RhcnRzV2l0aCgiL2FwaS8iKSAtYW5kIC1ub3QgKFRlc3QtQ3NyZk9rICRyZXEpKSB7 +CiAgICAgIFdyaXRlLUxvZyAiNDAzIENTUkYgJHBhdGggKE9yaWdpbiAkKCRyZXEuSGVhZGVyc1sn +T3JpZ2luJ10pKSIKICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0g +IlVuZ3VlbHRpZ2VyIE9yaWdpbiAoQ1NSRi1TY2h1dHopLiIgfSA0MDM7IGNvbnRpbnVlCiAgICB9 +CgogICAgIyAtLS0tIC9hcGkvcGluZyAtLS0tCiAgICBpZiAoJHBhdGggLWVxICIvYXBpL3Bpbmci +KSB7CiAgICAgICRjYW5FZGl0ID0gKCRyYW5rWyRyb2xlXSAtZ2UgJHJhbmtbInJlZGFrdGV1ciJd +KQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlOyB1c2VyID0gJG1lOyBuYW1lID0g +JG1lTmFtZTsgcm9sZSA9ICRyb2xlOyBjYW5FZGl0ID0gJGNhbkVkaXQ7IHZlcnNpb24gPSAiMS4x +IiB9OyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSBSb2xsZW4tRW5mb3JjZW1lbnQgKFNlcnZl +ci1zZWl0aWcsIHZvciBhbGxlbiBTY2hyZWliLUVuZHBvaW50cykgLS0tLQogICAgaWYgKC1ub3Qg +KFRlc3QtUm9sZUFsbG93ZWQgJHBhdGgpKSB7CiAgICAgIFdyaXRlLUxvZyAiNDAzICRwYXRoIChS +b2xsZSAkcm9sZSkiCiAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9 +ICJSb2xsZSAnJHJvbGUnIGRhcmYgJyRwYXRoJyBuaWNodC4iIH0gNDAzOyBjb250aW51ZQogICAg +fQoKICAgICMgLS0tLSAvYXBpL3B1Ymxpc2ggKFRleHRlOiBkYXRhLWNvbnRlbnQuanMgLyBkYXRh +LW5hdi5qcyAvIEFydGlrZWwtSFRNTCkgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9wdWJs +aXNoIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIlBPU1QiKSB7CiAgICAgICRkYXRhID0gKFJl +YWQtQm9keSAkY3R4KSB8IENvbnZlcnRGcm9tLUpzb24KICAgICAgIyBWZXJzaW9uc3N0YWVuZGUg +YWxzIEhhc2h0YWJsZSAobXV0aWVyYmFyKQogICAgICAkcmV2T2JqID0gUmVhZC1TdGF0ZUpzb24g +JHJldnNGaWxlICRudWxsCiAgICAgICRyZXZNYXAgPSBAe307IGlmICgkcmV2T2JqKSB7ICRyZXZP +YmouUFNPYmplY3QuUHJvcGVydGllcyB8IEZvckVhY2gtT2JqZWN0IHsgJHJldk1hcFskXy5OYW1l +XSA9IFtpbnRdJF8uVmFsdWUgfSB9CiAgICAgICRiYXNlID0gQHt9OyBpZiAoJGRhdGEuYmFzZVJl +dikgeyAkZGF0YS5iYXNlUmV2LlBTT2JqZWN0LlByb3BlcnRpZXMgfCBGb3JFYWNoLU9iamVjdCB7 +ICRiYXNlWyRfLk5hbWVdID0gW2ludF0kXy5WYWx1ZSB9IH0KICAgICAgIyBLb25mbGlrdC1QcnVl +ZnVuZyBWT1IgZGVtIFNjaHJlaWJlbgogICAgICAkY29uZmxpY3QgPSAkbnVsbAogICAgICBmb3Jl +YWNoICgkZiBpbiAkZGF0YS5maWxlcykgewogICAgICAgICRuYW1lID0gW3N0cmluZ10kZi5uYW1l +CiAgICAgICAgaWYgKFRlc3QtVHJhY2tlZCAkbmFtZSkgewogICAgICAgICAgJGN1ciA9IDA7IGlm +ICgkcmV2TWFwLkNvbnRhaW5zS2V5KCRuYW1lKSkgeyAkY3VyID0gJHJldk1hcFskbmFtZV0gfQog +ICAgICAgICAgaWYgKCRiYXNlLkNvbnRhaW5zS2V5KCRuYW1lKSAtYW5kICgkYmFzZVskbmFtZV0g +LWx0ICRjdXIpKSB7ICRjb25mbGljdCA9IEB7IG5hbWUgPSAkbmFtZTsgY3VyID0gJGN1cjsgeW91 +ciA9ICRiYXNlWyRuYW1lXSB9OyBicmVhayB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICgk +Y29uZmxpY3QpIHsKICAgICAgICBXcml0ZS1Mb2cgIjQwOSBDT05GTElDVCAkKCRjb25mbGljdC5u +YW1lKSAoZGVpbiAkKCRjb25mbGljdC55b3VyKSA8IGFrdHVlbGwgJCgkY29uZmxpY3QuY3VyKSki +CiAgICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGNvbmZsaWN0ID0gJHRydWU7 +IG5hbWUgPSAkY29uZmxpY3QubmFtZTsgY3VycmVudFJldiA9ICRjb25mbGljdC5jdXI7IHlvdXJS +ZXYgPSAkY29uZmxpY3QueW91ciB9IDQwOQogICAgICAgIGNvbnRpbnVlCiAgICAgIH0KICAgICAg +JHdyaXR0ZW4gPSBAKCkKICAgICAgZm9yZWFjaCAoJGYgaW4gJGRhdGEuZmlsZXMpIHsKICAgICAg +ICAkbmFtZSA9IFtzdHJpbmddJGYubmFtZQogICAgICAgIGlmICgtbm90IChUZXN0LVRyYWNrZWQg +JG5hbWUpKSB7IHRocm93ICJVbmVybGF1YnRlcyBaaWVsOiAkbmFtZSIgfQogICAgICAgICRmdWxs +ID0gUmVzb2x2ZS1UYXJnZXQgJG5hbWUKICAgICAgICBpZiAoLW5vdCAkZnVsbCkgeyB0aHJvdyAi +VW5ndWVsdGlnZXIgUGZhZDogJG5hbWUiIH0KICAgICAgICAkZGlyID0gU3BsaXQtUGF0aCAtUGFy +ZW50ICRmdWxsCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkZGlyKSkgeyBOZXctSXRlbSAt +SXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRkaXIgLUZvcmNlIHwgT3V0LU51bGwgfQogICAgICAg +ICRyZXZCZWZvcmUgPSAwOyBpZiAoJHJldk1hcC5Db250YWluc0tleSgkbmFtZSkpIHsgJHJldkJl +Zm9yZSA9ICRyZXZNYXBbJG5hbWVdIH0KICAgICAgICBTbmFwc2hvdC1GaWxlICRmdWxsICRuYW1l +ICRyZXZCZWZvcmUgInB1Ymxpc2giICIiICAgICAgICAjIGFsdGVuIFN0YW5kIHNpY2hlcm4KICAg +ICAgICAkdG1wID0gR2V0LVRtcFBhdGggJGZ1bGwKICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpX +cml0ZUFsbFRleHQoJHRtcCwgW3N0cmluZ10kZi50ZXh0LCAkdXRmOCkKICAgICAgICBSZXBsYWNl +LUZpbGUgJHRtcCAkZnVsbAogICAgICAgICR3cml0dGVuICs9ICRuYW1lCiAgICAgICAgaWYgKCRy +ZXZNYXAuQ29udGFpbnNLZXkoJG5hbWUpKSB7ICRyZXZNYXBbJG5hbWVdID0gJHJldk1hcFskbmFt +ZV0gKyAxIH0gZWxzZSB7ICRyZXZNYXBbJG5hbWVdID0gMSB9ICAgIyBSZXYgamUgWmllbAogICAg +ICB9CiAgICAgIFdyaXRlLVN0YXRlSnNvbiAkcmV2c0ZpbGUgJHJldk1hcAogICAgICBBZGQtQWN0 +aXZpdHkgInB1Ymxpc2giICgkd3JpdHRlbiAtam9pbiAiLCAiKQogICAgICBQcnVuZS1IaXN0b3J5 +CiAgICAgIFdyaXRlLUxvZyAoIlBVQkxJU0ggIiArICgkd3JpdHRlbiAtam9pbiAiLCAiKSkKICAg +ICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkdHJ1ZTsgd3JpdHRlbiA9ICR3cml0dGVuOyByZXZz +ID0gJHJldk1hcCB9OyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSAvYXBpL2hpc3RvcnkvcmVz +dG9yZSAoYWRtaW4pIC0tLS0KICAgIGlmICgkcGF0aCAtZXEgIi9hcGkvaGlzdG9yeS9yZXN0b3Jl +IiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIlBPU1QiKSB7CiAgICAgICRkID0gKFJlYWQtQm9k +eSAkY3R4KSB8IENvbnZlcnRGcm9tLUpzb24KICAgICAgJGhpZCA9IFtzdHJpbmddJGQuaWQKICAg +ICAgaWYgKC1ub3QgJGhpZCkgeyB0aHJvdyAiaWQgZmVobHQiIH0KICAgICAgJGVudHJ5ID0gQChH +ZXQtSGlzdG9yeUluZGV4KSB8IFdoZXJlLU9iamVjdCB7ICRfLmlkIC1lcSAkaGlkIH0gfCBTZWxl +Y3QtT2JqZWN0IC1GaXJzdCAxCiAgICAgICRzbmFwID0gSm9pbi1QYXRoICRoaXN0b3J5RGlyICgi +JGhpZC5zbmFwIikKICAgICAgaWYgKC1ub3QgJGVudHJ5IC1vciAtbm90IChUZXN0LVBhdGggJHNu +YXApKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJVbmJla2FubnRl +IEhpc3RvcmllLUlEIiB9IDQwNDsgY29udGludWUgfQogICAgICAkdGFyZ2V0ID0gW3N0cmluZ10k +ZW50cnkudGFyZ2V0CiAgICAgIGlmICgtbm90IChUZXN0LVRyYWNrZWQgJHRhcmdldCkpIHsgdGhy +b3cgIlppZWwgbmljaHQgd2llZGVyaGVyc3RlbGxiYXI6ICR0YXJnZXQiIH0KICAgICAgJGZ1bGwg +PSBSZXNvbHZlLVRhcmdldCAkdGFyZ2V0CiAgICAgIGlmICgtbm90ICRmdWxsKSB7IHRocm93ICJV +bmd1ZWx0aWdlciBQZmFkOiAkdGFyZ2V0IiB9CiAgICAgICRyZXZPYmogPSBSZWFkLVN0YXRlSnNv +biAkcmV2c0ZpbGUgJG51bGwKICAgICAgJHJldk1hcCA9IEB7fTsgaWYgKCRyZXZPYmopIHsgJHJl +dk9iai5QU09iamVjdC5Qcm9wZXJ0aWVzIHwgRm9yRWFjaC1PYmplY3QgeyAkcmV2TWFwWyRfLk5h +bWVdID0gW2ludF0kXy5WYWx1ZSB9IH0KICAgICAgJHJldkJlZm9yZSA9IDA7IGlmICgkcmV2TWFw +LkNvbnRhaW5zS2V5KCR0YXJnZXQpKSB7ICRyZXZCZWZvcmUgPSAkcmV2TWFwWyR0YXJnZXRdIH0K +ICAgICAgIyBBa3R1ZWxsZW4gU3RhbmQgenVlcnN0IHNpY2hlcm4gLT4gV2llZGVyaGVyc3RlbGx1 +bmcgaXN0IHNlbGJzdCByZXZlcnNpYmVsLgogICAgICBTbmFwc2hvdC1GaWxlICRmdWxsICR0YXJn +ZXQgJHJldkJlZm9yZSAicmVzdG9yZSIgInZvciBXaWVkZXJoZXJzdGVsbHVuZyIKICAgICAgJGRp +ciA9IFNwbGl0LVBhdGggLVBhcmVudCAkZnVsbAogICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRk +aXIpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJGRpciAtRm9yY2UgfCBP +dXQtTnVsbCB9CiAgICAgICRieXRlcyA9IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcygk +c25hcCkKICAgICAgJHRtcCA9IEdldC1UbXBQYXRoICRmdWxsCiAgICAgIFtTeXN0ZW0uSU8uRmls +ZV06OldyaXRlQWxsQnl0ZXMoJHRtcCwgJGJ5dGVzKQogICAgICBSZXBsYWNlLUZpbGUgJHRtcCAk +ZnVsbAogICAgICBpZiAoJHJldk1hcC5Db250YWluc0tleSgkdGFyZ2V0KSkgeyAkcmV2TWFwWyR0 +YXJnZXRdID0gJHJldk1hcFskdGFyZ2V0XSArIDEgfSBlbHNlIHsgJHJldk1hcFskdGFyZ2V0XSA9 +IDEgfSAgICMgUmV2IGplIFppZWwKICAgICAgV3JpdGUtU3RhdGVKc29uICRyZXZzRmlsZSAkcmV2 +TWFwCiAgICAgIEFkZC1BY3Rpdml0eSAicmVzdG9yZSIgJHRhcmdldAogICAgICBQcnVuZS1IaXN0 +b3J5CiAgICAgIFdyaXRlLUxvZyAiUkVTVE9SRSAkdGFyZ2V0IDwtICRoaWQiCiAgICAgIFNlbmQt +SnNvbiAkY3R4IEB7IG9rID0gJHRydWU7IHRhcmdldCA9ICR0YXJnZXQ7IHJlc3RvcmVkRnJvbSA9 +ICRoaWQ7IHJldnMgPSAkcmV2TWFwIH07IGNvbnRpbnVlCiAgICB9CgogICAgIyAtLS0tIC9hcGkv +YXNzZXQgKEJpbGQvUERGLVVwbG9hZCkgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9hc3Nl +dCIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJQT1NUIikgewogICAgICAkb3JpZ05hbWUgPSAk +cmVxLlF1ZXJ5U3RyaW5nWyJuYW1lIl07IGlmICgtbm90ICRvcmlnTmFtZSkgeyAkb3JpZ05hbWUg +PSAiZGF0ZWkiIH0KICAgICAgJGV4dCA9IChbU3lzdGVtLklPLlBhdGhdOjpHZXRFeHRlbnNpb24o +JG9yaWdOYW1lKSkuVHJpbVN0YXJ0KCIuIikuVG9Mb3dlcigpCiAgICAgIGlmICgtbm90ICgoJGlt +Z0V4dCAtY29udGFpbnMgJGV4dCkgLW9yICgkZG9jRXh0IC1jb250YWlucyAkZXh0KSkpIHsgU2Vu +ZC1Kc29uICRjdHggQHsgb2s9JGZhbHNlOyBlcnJvcj0iRGF0ZWl0eXAgbmljaHQgZXJsYXVidDog +LiRleHQiIH0gNDE1OyBjb250aW51ZSB9CiAgICAgICMgTGFlbmdlIGJla2FubnQgc2VpbiAoa2Vp +biBjaHVua2VkKSBVTkQgaW0gTGltaXQgLT4ga2VpbiB1bmJlZ3Jlbnp0ZXMgTGVzZW4gaW4gZGVu +IFJBTS4KICAgICAgaWYgKCRyZXEuQ29udGVudExlbmd0aDY0IC1sdCAwKSB7IFNlbmQtSnNvbiAk +Y3R4IEB7IG9rPSRmYWxzZTsgZXJyb3I9IkxhZW5nZSB1bmJla2FubnQgKGNodW5rZWQgbmljaHQg +ZXJsYXVidCkuIiB9IDQxMTsgY29udGludWUgfQogICAgICBpZiAoJHJlcS5Db250ZW50TGVuZ3Ro +NjQgLWd0ICRtYXhBc3NldCkgeyBTZW5kLUpzb24gJGN0eCBAeyBvaz0kZmFsc2U7IGVycm9yPSJE +YXRlaSB6dSBncm9zcyAobWF4IDI1IE1CKS4iIH0gNDEzOyBjb250aW51ZSB9CiAgICAgICRtcyA9 +IE5ldy1PYmplY3QgU3lzdGVtLklPLk1lbW9yeVN0cmVhbQogICAgICAkcmVxLklucHV0U3RyZWFt +LkNvcHlUbygkbXMsIDY1NTM2KQogICAgICAkYnl0ZXMgPSAkbXMuVG9BcnJheSgpOyAkbXMuQ2xv +c2UoKQogICAgICBpZiAoJGJ5dGVzLkxlbmd0aCAtZ3QgJG1heEFzc2V0KSB7IFNlbmQtSnNvbiAk +Y3R4IEB7IG9rPSRmYWxzZTsgZXJyb3I9IkRhdGVpIHp1IGdyb3NzIChtYXggMjUgTUIpLiIgfSA0 +MTM7IGNvbnRpbnVlIH0KICAgICAgJHVpZCA9IChHZXQtRGF0ZSAtRm9ybWF0ICJ5eXl5TU1kZEhI +bW1zcyIpICsgIi0iICsgKFtHdWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCJOIikuU3Vic3RyaW5n +KDAsNikpCiAgICAgICRmaWxlTmFtZSA9ICIkdWlkLiRleHQiCiAgICAgIFtTeXN0ZW0uSU8uRmls +ZV06OldyaXRlQWxsQnl0ZXMoKEpvaW4tUGF0aCAkYXNzZXRzRGlyICRmaWxlTmFtZSksICRieXRl +cykKICAgICAgV3JpdGUtTG9nICJBU1NFVCAkZmlsZU5hbWUgKCQoJGJ5dGVzLkxlbmd0aCkgQnl0 +ZXMsIHVyc3ByLiAkb3JpZ05hbWUpIgogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVl +OyBwYXRoID0gImRva3VtZW50ZS9tZWRpYS91cGxvYWRzLyRmaWxlTmFtZSIgfTsgY29udGludWUK +ICAgIH0KCiAgICAjIC0tLS0gL2FwaS9zdGF0ZSAoRW50d3VlcmZlICsgTG9ja3MgKyBBa3Rpdml0 +YWV0ICsgVmVyc2lvbnNzdGFlbmRlKSAtLS0tCiAgICBpZiAoJHBhdGggLWVxICIvYXBpL3N0YXRl +IiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgJHJldk9iaiA9IFJlYWQt +U3RhdGVKc29uICRyZXZzRmlsZSAoQHt9KQogICAgICAkYWN0ID0gQChSZWFkLVN0YXRlSnNvbiAk +YWN0aXZpdHlGaWxlIEAoKSkgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCA1MAogICAgICBTZW5kLUpz +b24gJGN0eCBAeyBvayA9ICR0cnVlOyBkcmFmdHMgPSBAKEdldC1BbGxEcmFmdHMpOyBsb2NrcyA9 +IEAoR2V0LUFjdGl2ZUxvY2tzKTsgYWN0aXZpdHkgPSBAKCRhY3QpOyByZXZzID0gJHJldk9iaiB9 +OyBjb250aW51ZQogICAgfQoKICAgICMgLS0tLSAvYXBpL2hpc3RvcnkgKExpc3RlLCBhZG1pbikg +LS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9oaXN0b3J5IiAtYW5kICRyZXEuSHR0cE1ldGhv +ZCAtZXEgIkdFVCIpIHsKICAgICAgJHRndCA9ICRyZXEuUXVlcnlTdHJpbmdbInRhcmdldCJdCiAg +ICAgICRpdGVtcyA9IEAoR2V0LUhpc3RvcnlJbmRleCkKICAgICAgaWYgKCR0Z3QpIHsgJGl0ZW1z +ID0gQCgkaXRlbXMgfCBXaGVyZS1PYmplY3QgeyAkXy50YXJnZXQgLWVxICR0Z3QgfSkgfQogICAg +ICBpZiAoJGl0ZW1zLkNvdW50IC1ndCA1MDApIHsgJGl0ZW1zID0gQCgkaXRlbXNbMC4uNDk5XSkg +fQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlOyBpdGVtcyA9IEAoJGl0ZW1zKTsg +bGltaXRzID0gQHsgcHJ1bmVEYXlzID0gJGhpc3RQcnVuZURheXM7IG1heFBlclRhcmdldCA9ICRo +aXN0TWF4UGVyVGFyZ2V0IH0gfTsgY29udGludWUKICAgIH0KICAgICMgLS0tLSAvYXBpL2hpc3Rv +cnkvPGlkPiAoU25hcHNob3QtSW5oYWx0LCBhZG1pbikgLS0tLQogICAgaWYgKCRwYXRoIC1saWtl +ICIvYXBpL2hpc3RvcnkvKiIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJHRVQiKSB7CiAgICAg +ICRoaWQgPSAkcGF0aC5TdWJzdHJpbmcoIi9hcGkvaGlzdG9yeS8iLkxlbmd0aCkKICAgICAgJGVu +dHJ5ID0gQChHZXQtSGlzdG9yeUluZGV4KSB8IFdoZXJlLU9iamVjdCB7ICRfLmlkIC1lcSAkaGlk +IH0gfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAxCiAgICAgICRzbmFwID0gSm9pbi1QYXRoICRoaXN0 +b3J5RGlyICgiJGhpZC5zbmFwIikKICAgICAgaWYgKC1ub3QgJGVudHJ5IC1vciAtbm90IChUZXN0 +LVBhdGggJHNuYXApKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJV +bmJla2FubnRlIEhpc3RvcmllLUlEIiB9IDQwNDsgY29udGludWUgfQogICAgICAkdGV4dCA9IFtT +eXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRzbmFwLCAkdXRmOCkKICAgICAgU2VuZC1Kc29u +ICRjdHggQHsgb2sgPSAkdHJ1ZTsgaWQgPSAkaGlkOyB0YXJnZXQgPSAkZW50cnkudGFyZ2V0OyB0 +cyA9ICRlbnRyeS50czsgbmFtZSA9ICRlbnRyeS5uYW1lOyB0ZXh0ID0gJHRleHQgfTsgY29udGlu +dWUKICAgIH0KCiAgICAjIC0tLS0gL2FwaS9taWdyYXRpb24gKExpc3RlIGtvbnZlcnRpZXJ0ZXIg +QWx0LURva3VtZW50ZSwgYWRtaW4pIC0tLS0KICAgIGlmICgkcGF0aCAtZXEgIi9hcGkvbWlncmF0 +aW9uIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgU2VuZC1Kc29uICRj +dHggQHsgb2sgPSAkdHJ1ZTsgaXRlbXMgPSBAKEdldC1NaWdyYXRpb25MaXN0KSB9OyBjb250aW51 +ZQogICAgfQogICAgIyAtLS0tIC9hcGkvbWlncmF0aW9uLzxzbHVnPiAoZWluIGtvbnZlcnRpZXJ0 +ZXMgQXJ0aWtlbC1KU09OLCBhZG1pbikgLS0tLQogICAgaWYgKCRwYXRoIC1saWtlICIvYXBpL21p +Z3JhdGlvbi8qIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgJHNsdWcg +PSAkcGF0aC5TdWJzdHJpbmcoIi9hcGkvbWlncmF0aW9uLyIuTGVuZ3RoKQogICAgICAkYXJ0ID0g +R2V0LU1pZ3JhdGlvbkFydGljbGUgJHNsdWcKICAgICAgaWYgKC1ub3QgJGFydCkgeyBTZW5kLUpz +b24gJGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiVW5iZWthbm50ZXIgU2x1ZyIgfSA0MDQ7 +IGNvbnRpbnVlIH0KICAgICAgJHcgPSBAKCk7IGlmICgkYXJ0Lndhcm5pbmdzKSB7ICR3ID0gQCgk +YXJ0Lndhcm5pbmdzKSB9CiAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJHRydWU7IGFydGlj +bGUgPSAkYXJ0LmFydGljbGU7IHNvdXJjZSA9IFtzdHJpbmddJGFydC5zb3VyY2U7IHdhcm5pbmdz +ID0gJHcgfTsgY29udGludWUKICAgIH0KCiAgICAjIC0tLS0gL2FwaS9hZG1pbi9yb2xlcyAoUm9s +bGVuLVZlcndhbHR1bmcsIGFkbWluKSAtLS0tCiAgICBpZiAoJHBhdGggLWVxICIvYXBpL2FkbWlu +L3JvbGVzIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIpIHsKICAgICAgU2VuZC1Kc29u +ICRjdHggKEdldC1Sb2xlc1BheWxvYWQpOyBjb250aW51ZQogICAgfQogICAgaWYgKCRwYXRoIC1l +cSAiL2FwaS9hZG1pbi9yb2xlcyIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJQT1NUIikgewog +ICAgICAkZCA9IChSZWFkLUJvZHkgJGN0eCkgfCBDb252ZXJ0RnJvbS1Kc29uCiAgICAgICR3aGlj +aCA9IFtzdHJpbmddJGQubGlzdAogICAgICAjIFBlcnNvbmVuc3BlaWNoZXIgKFBlcnNvbmFsbGlz +dGUsIGF1Y2ggUGVyc29uZW4gb2huZSBSb2xsZS9LZW5udW5nKTogSlNPTiBuYWNoIGRva3VtZW50 +ZS9qc29uL3BlcnNvbmFsLmpzb24KICAgICAgaWYgKCR3aGljaCAtZXEgInBlcnNvbmFsIikgewog +ICAgICAgICRmdWxsID0gUmVzb2x2ZS1UYXJnZXQgImRva3VtZW50ZS9qc29uL3BlcnNvbmFsLmpz +b24iCiAgICAgICAgaWYgKC1ub3QgJGZ1bGwpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFs +c2U7IGVycm9yID0gIlBmYWQgbmljaHQgZXJsYXVidC4iIH0gNDAzOyBjb250aW51ZSB9CiAgICAg +ICAgaWYgKCRudWxsIC1lcSAkZC5lbnRyaWVzKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZh +bHNlOyBlcnJvciA9ICJwZXJzb25hbCBvaG5lIGVudHJpZXMgYWJnZWxlaG50LiIgfSA0MDA7IGNv +bnRpbnVlIH0KICAgICAgICAkcGwgPSBAKCkKICAgICAgICBmb3JlYWNoICgkZSBpbiBAKCRkLmVu +dHJpZXMpKSB7CiAgICAgICAgICBpZiAoJG51bGwgLWVxICRlKSB7IGNvbnRpbnVlIH0KICAgICAg +ICAgICRrID0gKChbc3RyaW5nXSRlLmtlbm51bmcpIC1yZXBsYWNlICdbOyNcclxuXSsnLCAnICcp +LlRyaW0oKTsgaWYgKCRrLkxlbmd0aCAtZ3QgMzIpIHsgJGsgPSAkay5TdWJzdHJpbmcoMCwgMzIp +IH0KICAgICAgICAgICRnID0gKChbc3RyaW5nXSRlLmdyYWQpICAgICAtcmVwbGFjZSAnW1xyXG5d +KycsICcgJykuVHJpbSgpOyBpZiAoJGcuTGVuZ3RoIC1ndCA0MCkgeyAkZyA9ICRnLlN1YnN0cmlu +ZygwLCA0MCkgfQogICAgICAgICAgJHYgPSAoKFtzdHJpbmddJGUudm9ybmFtZSkgIC1yZXBsYWNl +ICdbXHJcbl0rJywgJyAnKS5UcmltKCk7IGlmICgkdi5MZW5ndGggLWd0IDYwKSB7ICR2ID0gJHYu +U3Vic3RyaW5nKDAsIDYwKSB9CiAgICAgICAgICAkbiA9ICgoW3N0cmluZ10kZS5uYWNobmFtZSkg +LXJlcGxhY2UgJ1tcclxuXSsnLCAnICcpLlRyaW0oKTsgaWYgKCRuLkxlbmd0aCAtZ3QgNjApIHsg +JG4gPSAkbi5TdWJzdHJpbmcoMCwgNjApIH0KICAgICAgICAgIGlmICgtbm90ICgkayAtb3IgJGcg +LW9yICR2IC1vciAkbikpIHsgY29udGludWUgfQogICAgICAgICAgJHBsICs9IFtvcmRlcmVkXUB7 +IGtlbm51bmcgPSAkazsgZ3JhZCA9ICRnOyB2b3JuYW1lID0gJHY7IG5hY2huYW1lID0gJG4gfQog +ICAgICAgIH0KICAgICAgICBpZiAoJHBsLkNvdW50IC1lcSAwKSB7ICRqc29uID0gIltdIiB9CiAg +ICAgICAgZWxzZWlmICgkcGwuQ291bnQgLWVxIDEpIHsgJGpzb24gPSAiWyIgKyAoJHBsWzBdIHwg +Q29udmVydFRvLUpzb24gLURlcHRoIDYgLUNvbXByZXNzKSArICJdIiB9CiAgICAgICAgZWxzZSB7 +ICRqc29uID0gJHBsIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDYgLUNvbXByZXNzIH0KICAgICAg +ICAkamRpciA9IFNwbGl0LVBhdGggLVBhcmVudCAkZnVsbAogICAgICAgIGlmICgtbm90IChUZXN0 +LVBhdGggLUxpdGVyYWxQYXRoICRqZGlyKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5 +IC1QYXRoICRqZGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0KICAgICAgICAjIFNpY2hlcmhlaXRzbmV0 +ejogYmVzdGVoZW5kZSBMaXN0ZSB2b3IgZGVtIFVlYmVyc2NocmVpYmVuIHNpY2hlcm4gKHJlY292 +ZXJiYXIgYmVpIHZlcnNlaGVudGxpY2hlbSBOLT4wKQogICAgICAgIGlmIChUZXN0LVBhdGggLUxp +dGVyYWxQYXRoICRmdWxsKSB7IHRyeSB7IENvcHktSXRlbSAtTGl0ZXJhbFBhdGggJGZ1bGwgIiRm +dWxsLmJhayIgLUZvcmNlIH0gY2F0Y2gge30gfQogICAgICAgICR0bXAgPSBHZXQtVG1wUGF0aCAk +ZnVsbAogICAgICAgIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkdG1wLCAkanNvbiwg +JHV0ZjgpCiAgICAgICAgUmVwbGFjZS1GaWxlICR0bXAgJGZ1bGwKICAgICAgICBBZGQtQWN0aXZp +dHkgInBlcnNvbmFsIiAoInBlcnNvbmFsLmpzb24gKHswfSkiIC1mICRwbC5Db3VudCkKICAgICAg +ICAkcmVzcCA9IEdldC1Sb2xlc1BheWxvYWQ7ICRyZXNwLmxpc3QgPSAicGVyc29uYWwiOyAkcmVz +cC5jb3VudCA9ICRwbC5Db3VudAogICAgICAgIFNlbmQtSnNvbiAkY3R4ICRyZXNwOyBjb250aW51 +ZQogICAgICB9CiAgICAgIGlmICgkd2hpY2ggLW5lICJhZG1pbiIgLWFuZCAkd2hpY2ggLW5lICJy +ZWRha3RldXIiKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJVbmJl +a2FubnRlIExpc3RlIiB9IDQwMDsgY29udGludWUgfQogICAgICAkZm4gPSBpZiAoJHdoaWNoIC1l +cSAiYWRtaW4iKSB7ICRhZG1pbkZpbGUgfSBlbHNlIHsgJHJlZGFrRmlsZSB9CiAgICAgICRjdXJy +ZW50ID0gQChSZWFkLVJvbGVQYWlycyAkZm4pCiAgICAgICR0YXJnZXQgPSBAKCkKICAgICAgaWYg +KCRkLmVudHJpZXMpIHsKICAgICAgICBmb3JlYWNoICgkZSBpbiAkZC5lbnRyaWVzKSB7ICR0YXJn +ZXQgKz0gW29yZGVyZWRdQHsga2VubnVuZyA9IFtzdHJpbmddJGUua2VubnVuZzsgbmFtZSA9IFtz +dHJpbmddJGUubmFtZSB9IH0KICAgICAgfSBlbHNlIHsKICAgICAgICAkb3AgPSBbc3RyaW5nXSRk +Lm9wOyAka2VubnVuZyA9IChbc3RyaW5nXSRkLmtlbm51bmcpLlRyaW0oKQogICAgICAgIGlmICgo +JG9wIC1uZSAiYWRkIiAtYW5kICRvcCAtbmUgInJlbW92ZSIpIC1vciAtbm90ICRrZW5udW5nKSB7 +IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJvcC9rZW5udW5nIGZlaGx0 +IiB9IDQwMDsgY29udGludWUgfQogICAgICAgIGZvcmVhY2ggKCRlIGluICRjdXJyZW50KSB7IGlm +ICgoW3N0cmluZ10kZS5rZW5udW5nKS5Ub0xvd2VyKCkgLW5lICRrZW5udW5nLlRvTG93ZXIoKSkg +eyAkdGFyZ2V0ICs9ICRlIH0gfQogICAgICAgIGlmICgkb3AgLWVxICJhZGQiKSB7ICR0YXJnZXQg +Kz0gW29yZGVyZWRdQHsga2VubnVuZyA9ICRrZW5udW5nOyBuYW1lID0gW3N0cmluZ10kZC5uYW1l +IH0gfQogICAgICB9CiAgICAgICRzZWVuID0gQHt9OyAkY2xlYW4gPSBAKCk7ICRiYWQgPSAkbnVs +bAogICAgICBmb3JlYWNoICgkZSBpbiAkdGFyZ2V0KSB7CiAgICAgICAgJGsgPSAoW3N0cmluZ10k +ZS5rZW5udW5nKS5UcmltKCkKICAgICAgICAkbiA9ICgoW3N0cmluZ10kZS5uYW1lKSAtcmVwbGFj +ZSAnWzsjXHJcbl0rJywgJyAnKS5UcmltKCk7IGlmICgkbi5MZW5ndGggLWd0IDgwKSB7ICRuID0g +JG4uU3Vic3RyaW5nKDAsIDgwKSB9CiAgICAgICAgaWYgKC1ub3QgJGspIHsgY29udGludWUgfQog +ICAgICAgIGlmICgkayAtbm90bWF0Y2ggJGtlbm51bmdSZSkgeyAkYmFkID0gJGs7IGJyZWFrIH0K +ICAgICAgICAkbGsgPSAkay5Ub0xvd2VyKCkKICAgICAgICBpZiAoJHNlZW4uQ29udGFpbnNLZXko +JGxrKSkgeyBpZiAoJG4pIHsgJGNsZWFuWyRzZWVuWyRsa11dLm5hbWUgPSAkbiB9OyBjb250aW51 +ZSB9CiAgICAgICAgJHNlZW5bJGxrXSA9ICRjbGVhbi5Db3VudAogICAgICAgICRjbGVhbiArPSBb +b3JkZXJlZF1AeyBrZW5udW5nID0gJGs7IG5hbWUgPSAkbiB9CiAgICAgIH0KICAgICAgaWYgKCRi +YWQpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIlVuZ3VlbHRpZ2Ug +S2VubnVuZzogJGJhZCIgfSA0MDA7IGNvbnRpbnVlIH0KICAgICAgaWYgKCR3aGljaCAtZXEgImFk +bWluIikgewogICAgICAgIGlmICgkY2xlYW4uQ291bnQgLWVxIDApIHsgU2VuZC1Kc29uICRjdHgg +QHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIkRpZSBBZG1pbi1MaXN0ZSBkYXJmIG5pY2h0IGxlZXIg +c2Vpbi4iIH0gNDAzOyBjb250aW51ZSB9CiAgICAgICAgJGhhdmUgPSBAKCRjbGVhbiB8IEZvckVh +Y2gtT2JqZWN0IHsgKFtzdHJpbmddJF8ua2VubnVuZykuVG9Mb3dlcigpIH0pCiAgICAgICAgaWYg +KCgkaGF2ZSAtbm90Y29udGFpbnMgJG1lTG93ZXIpIC1hbmQgKCRlbWVyZ2VuY3lMb3dlciAtbm90 +Y29udGFpbnMgJG1lTG93ZXIpKSB7CiAgICAgICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICRm +YWxzZTsgZXJyb3IgPSAiRHUga2FubnN0IGRpciBuaWNodCBzZWxic3QgZGllIEFkbWluLVJlY2h0 +ZSBlbnR6aWVoZW4uIiB9IDQwMzsgY29udGludWUKICAgICAgICB9CiAgICAgIH0KICAgICAgV3Jp +dGUtUm9sZUxpc3QgJGZuICRjbGVhbgogICAgICBBZGQtQWN0aXZpdHkgInJvbGVzIiAoInswfSAo +ezF9KSIgLWYgJGZuLCAkY2xlYW4uQ291bnQpCiAgICAgIFdyaXRlLUxvZyAoIlJPTEVTIHswfSAt +PiB7MX0gRWludHJhZWdlIiAtZiAkZm4sICRjbGVhbi5Db3VudCkKICAgICAgJHJlc3AgPSBHZXQt +Um9sZXNQYXlsb2FkCiAgICAgICRyZXNwLmxpc3QgPSAkd2hpY2g7ICRyZXNwLmNvdW50ID0gJGNs +ZWFuLkNvdW50OyAkcmVzcC5iYWNrdXAgPSAiJGZuLmJhayIKICAgICAgU2VuZC1Kc29uICRjdHgg +JHJlc3A7IGNvbnRpbnVlCiAgICB9CgogICAgIyAtLS0tIC9hcGkvZm9sZGVyIChWZXJ6ZWljaG5p +cyBhdWZsaXN0ZW4sIGZ1ZXIgZGFzIE9yZG5lci1Nb2RhbCkgLS0tLQogICAgaWYgKCRwYXRoIC1l +cSAiL2FwaS9mb2xkZXIiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiR0VUIikgewogICAgICAk +ZnVsbCA9IE5vcm1hbGl6ZS1PcGVuUGF0aCAoJHJlcS5RdWVyeVN0cmluZ1sicGF0aCJdKQogICAg +ICBpZiAoLW5vdCAoVGVzdC1PcGVuQWxsb3dlZCAkZnVsbCkpIHsgU2VuZC1Kc29uICRjdHggQHsg +b2sgPSAkZmFsc2U7IGVycm9yID0gIlBmYWQgbmljaHQgZXJsYXVidC4iIH0gNDAzOyBjb250aW51 +ZSB9CiAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRmdWxsIC1QYXRoVHlw +ZSBDb250YWluZXIpKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJP +cmRuZXIgbmljaHQgZ2VmdW5kZW4uIiB9IDQwNDsgY29udGludWUgfQogICAgICAkZW50cmllcyA9 +IEAoKQogICAgICB0cnkgewogICAgICAgIGZvcmVhY2ggKCRpdGVtIGluIChHZXQtQ2hpbGRJdGVt +IC1MaXRlcmFsUGF0aCAkZnVsbCAtRm9yY2UgLUVycm9yQWN0aW9uIFN0b3ApKSB7CiAgICAgICAg +ICBpZiAoKCRpdGVtLkF0dHJpYnV0ZXMgLWJhbmQgW1N5c3RlbS5JTy5GaWxlQXR0cmlidXRlc106 +OkhpZGRlbikgLW9yICgkaXRlbS5BdHRyaWJ1dGVzIC1iYW5kIFtTeXN0ZW0uSU8uRmlsZUF0dHJp +YnV0ZXNdOjpTeXN0ZW0pKSB7IGNvbnRpbnVlIH0KICAgICAgICAgICRpc0RpciA9ICRpdGVtLlBT +SXNDb250YWluZXIKICAgICAgICAgICRlbnRyaWVzICs9IFtvcmRlcmVkXUB7CiAgICAgICAgICAg +IG5hbWUgPSAkaXRlbS5OYW1lCiAgICAgICAgICAgIGtpbmQgPSBpZiAoJGlzRGlyKSB7ICJkaXIi +IH0gZWxzZSB7ICJmaWxlIiB9CiAgICAgICAgICAgIHNpemUgPSBpZiAoJGlzRGlyKSB7IDAgfSBl +bHNlIHsgW2xvbmddJGl0ZW0uTGVuZ3RoIH0KICAgICAgICAgICAgZXh0ICA9IGlmICgkaXNEaXIp +IHsgIiIgfSBlbHNlIHsgKCRpdGVtLkV4dGVuc2lvbi5UcmltU3RhcnQoJy4nKSkuVG9Mb3dlcigp +IH0KICAgICAgICAgICAgcGF0aCA9ICRpdGVtLkZ1bGxOYW1lCiAgICAgICAgICB9CiAgICAgICAg +fQogICAgICB9IGNhdGNoIHt9CiAgICAgICRlbnRyaWVzID0gQCgkZW50cmllcyB8IFNvcnQtT2Jq +ZWN0IEB7RXhwcmVzc2lvbj17IGlmICgkXy5raW5kIC1lcSAnZGlyJykgeyAwIH0gZWxzZSB7IDEg +fSB9fSwgQHtFeHByZXNzaW9uPXsgJF8ubmFtZSB9fSkKICAgICAgaWYgKCRlbnRyaWVzLkNvdW50 +IC1ndCAyMDAwKSB7ICRlbnRyaWVzID0gQCgkZW50cmllc1swLi4xOTk5XSkgfQogICAgICBTZW5k +LUpzb24gJGN0eCBAeyBvayA9ICR0cnVlOyBwYXRoID0gJGZ1bGw7IGVudHJpZXMgPSAkZW50cmll +cyB9OyBjb250aW51ZQogICAgfQogICAgIyAtLS0tIC9hcGkvb3BlbiAoRGF0ZWkvT3JkbmVyIGxv +a2FsIG9lZmZuZW46IE9mZmljZSBiencuIEV4cGxvcmVyKSAtLS0tCiAgICBpZiAoJHBhdGggLWVx +ICIvYXBpL29wZW4iIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiUE9TVCIpIHsKICAgICAgJGQg +PSAoUmVhZC1Cb2R5ICRjdHgpIHwgQ29udmVydEZyb20tSnNvbgogICAgICAkZnVsbCA9IE5vcm1h +bGl6ZS1PcGVuUGF0aCAoW3N0cmluZ10kZC5wYXRoKQogICAgICBpZiAoLW5vdCAkZnVsbCkgeyBT +ZW5kLUpzb24gJGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiUGZhZCBuaWNodCBlcmxhdWJ0 +LiIgfSA0MDM7IGNvbnRpbnVlIH0KICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBh +dGggJGZ1bGwpKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJOaWNo +dCBnZWZ1bmRlbi4iIH0gNDA0OyBjb250aW51ZSB9CiAgICAgICRpc0RpciA9IFRlc3QtUGF0aCAt +TGl0ZXJhbFBhdGggJGZ1bGwgLVBhdGhUeXBlIENvbnRhaW5lcgogICAgICAkaXNFeGVjID0gKC1u +b3QgJGlzRGlyKSAtYW5kIChUZXN0LUlzRXhlYyAkZnVsbCkKICAgICAgaWYgKCRpc0V4ZWMpIHsK +ICAgICAgICAjIFByb2dyYW1tZSBudXIgYXVzIGVuZyBhbGxvd2xpc3RldGVuIFZlcnplaWNobmlz +c2VuIChXaW5kb3dzIGZyYWd0IHp1c2FldHpsaWNoIG5hY2gpCiAgICAgICAgaWYgKC1ub3QgKFRl +c3QtRXhlQWxsb3dlZCAkZnVsbCkpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVy +cm9yID0gIlByb2dyYW1tLVN0YXJ0IGZ1ZXIgZGllc2VuIFBmYWQgbmljaHQgZXJsYXVidC4iIH0g +NDAzOyBjb250aW51ZSB9CiAgICAgIH0gZWxzZWlmICgkaXNEaXIpIHsKICAgICAgICBpZiAoLW5v +dCAoVGVzdC1PcGVuQWxsb3dlZCAkZnVsbCkpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFs +c2U7IGVycm9yID0gIlBmYWQgbmljaHQgZXJsYXVidC4iIH0gNDAzOyBjb250aW51ZSB9CiAgICAg +IH0gZWxzZSB7CiAgICAgICAgaWYgKC1ub3QgKFRlc3QtT3BlbkFsbG93ZWQgJGZ1bGwpKSB7IFNl +bmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJQZmFkIG5pY2h0IGVybGF1YnQu +IiB9IDQwMzsgY29udGludWUgfQogICAgICAgIGlmICgtbm90IChUZXN0LU9wZW5FeHQgJGZ1bGwp +KSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNlOyBlcnJvciA9ICJEYXRlaXR5cCBuaWNo +dCBlcmxhdWJ0LiIgfSA0MDM7IGNvbnRpbnVlIH0KICAgICAgfQogICAgICB0cnkgewogICAgICAg +IGlmICgkaXNEaXIpIHsgU3RhcnQtUHJvY2VzcyAtRmlsZVBhdGggImV4cGxvcmVyLmV4ZSIgLUFy +Z3VtZW50TGlzdCAoJyInICsgJGZ1bGwgKyAnIicpIH0KICAgICAgICBlbHNlIHsgU3RhcnQtUHJv +Y2VzcyAtRmlsZVBhdGggJGZ1bGwgfQogICAgICAgIFdyaXRlLUxvZyAoIk9QRU4gIiArICRmdWxs +KQogICAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJHRydWUgfQogICAgICB9IGNhdGNoIHsK +ICAgICAgICBXcml0ZS1Mb2cgKCJPUEVOLUZFSExFUiAiICsgJF8uRXhjZXB0aW9uLk1lc3NhZ2Up +CiAgICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIk9lZmZuZW4g +ZmVobGdlc2NobGFnZW4uIiB9IDUwMAogICAgICB9CiAgICAgIGNvbnRpbnVlCiAgICB9CgogICAg +IyAtLS0tIC9hcGkvZmlsZXNpemUgKERpYWdub3NlOiBsb2thbGUgRGF0ZWlncm9lc3NlLCBmdWVy +IFN5bmNocm9uX3Rlc3QuaHRtbCkgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9maWxlc2l6 +ZSIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJHRVQiKSB7CiAgICAgICRyZWwgPSBbc3RyaW5n +XSRyZXEuUXVlcnlTdHJpbmdbInBhdGgiXQogICAgICAkZnVsbCA9IGlmICgkcmVsKSB7IFJlc29s +dmUtVGFyZ2V0ICRyZWwgfSBlbHNlIHsgJG51bGwgfQogICAgICBpZiAoLW5vdCAkZnVsbCkgeyBT +ZW5kLUpzb24gJGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiUGZhZCBuaWNodCBlcmxhdWJ0 +LiIgfSA0MDM7IGNvbnRpbnVlIH0KICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGZ1 +bGwgLVBhdGhUeXBlIExlYWYpIHsKICAgICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVl +OyBleGlzdHMgPSAkdHJ1ZTsgc2l6ZSA9IFtsb25nXSgoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRm +dWxsKS5MZW5ndGgpIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBTZW5kLUpzb24gJGN0eCBAeyBv +ayA9ICR0cnVlOyBleGlzdHMgPSAkZmFsc2U7IHNpemUgPSAtMSB9CiAgICAgIH0KICAgICAgY29u +dGludWUKICAgIH0KCiAgICAjIC0tLS0gL2FwaS90cmVlIChEaWFnbm9zZTogVmVyemVpY2huaXMg +cmVrdXJzaXYgbWl0IEdyb2Vzc2VuLCBmdWVyIFN5bmNocm9uX3Rlc3QuaHRtbCkgLS0tLQogICAg +aWYgKCRwYXRoIC1lcSAiL2FwaS90cmVlIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkdFVCIp +IHsKICAgICAgJHJlbERpciA9IFtzdHJpbmddJHJlcS5RdWVyeVN0cmluZ1siZGlyIl07IGlmICgt +bm90ICRyZWxEaXIpIHsgJHJlbERpciA9ICIuIiB9CiAgICAgICRiYXNlID0gUmVzb2x2ZS1UYXJn +ZXQgJHJlbERpcgogICAgICBpZiAoLW5vdCAkYmFzZSkgeyBTZW5kLUpzb24gJGN0eCBAeyBvayA9 +ICRmYWxzZTsgZXJyb3IgPSAiUGZhZCBuaWNodCBlcmxhdWJ0LiIgfSA0MDM7IGNvbnRpbnVlIH0K +ICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGJhc2UgLVBhdGhUeXBlIENv +bnRhaW5lcikpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIk9yZG5l +ciBuaWNodCBnZWZ1bmRlbi4iIH0gNDA0OyBjb250aW51ZSB9CiAgICAgICRyb290RnVsbCA9IFtT +eXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRQb3J0YWxSb290KQogICAgICAkc2tpcCA9IEAo +Ii5naXQiLCAiZG9rdW1lbnRlIiwgIl9hcmNoaXYiLCAibWVkaWEtdHJhbnNmZXIiLCAidGlueW1j +ZS10cmFuc2ZlciIsICJzdGF0ZSIsICJsb2dzIiwgIl9fcHljYWNoZV9fIiwgIm5vZGVfbW9kdWxl +cyIsICJ0ZXN0cyIsICIudnMiLCAiLmlkZWEiKQogICAgICAkaXRlbXMgPSBAKCkKICAgICAgdHJ5 +IHsKICAgICAgICBmb3JlYWNoICgkZiBpbiAoR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJGJh +c2UgLVJlY3Vyc2UgLUZpbGUgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKSkg +ewogICAgICAgICAgJHJlbCA9ICRmLkZ1bGxOYW1lLlN1YnN0cmluZygkcm9vdEZ1bGwuTGVuZ3Ro +KS5UcmltU3RhcnQoJ1wnKS5SZXBsYWNlKCdcJywgJy8nKQogICAgICAgICAgJHNraXBJdCA9ICRm +YWxzZQogICAgICAgICAgZm9yZWFjaCAoJHMgaW4gJHJlbC5TcGxpdCgnLycpKSB7IGlmICgkc2tp +cCAtY29udGFpbnMgJHMpIHsgJHNraXBJdCA9ICR0cnVlOyBicmVhayB9IH0KICAgICAgICAgIGlm +ICgtbm90ICRza2lwSXQpIHsgJGl0ZW1zICs9IFtvcmRlcmVkXUB7IHBhdGggPSAkcmVsOyBzaXpl +ID0gW2xvbmddJGYuTGVuZ3RoIH0gfQogICAgICAgIH0KICAgICAgfSBjYXRjaCB7fQogICAgICBp +ZiAoJGl0ZW1zLkNvdW50IC1ndCA2MDAwKSB7ICRpdGVtcyA9IEAoJGl0ZW1zWzAuLjU5OTldKSB9 +CiAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJHRydWU7IGRpciA9ICRyZWxEaXI7IGZpbGVz +ID0gJGl0ZW1zIH07IGNvbnRpbnVlCiAgICB9CgogICAgIyAtLS0tIC9hcGkvYXJ6dGxpc3RlIChS +ZWdpc3RlciAiQXJ6dCBhbmZvcmRlcm4iOiBsYWRlbikgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAi +L2FwaS9hcnp0bGlzdGUiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiR0VUIikgewogICAgICAk +ZnVsbCA9IFJlc29sdmUtVGFyZ2V0ICJkb2t1bWVudGUvanNvbi9hcnp0bGlzdGUuanNvbiIKICAg +ICAgJGFyciA9ICJbXSIKICAgICAgaWYgKCRmdWxsIC1hbmQgKFRlc3QtUGF0aCAtTGl0ZXJhbFBh +dGggJGZ1bGwpKSB7IHRyeSB7ICRhcnIgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgk +ZnVsbCwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOCkgfSBjYXRjaCB7fSB9CiAgICAgIGlm +ICgtbm90ICRhcnIgLW9yIC1ub3QgJGFyci5UcmltKCkpIHsgJGFyciA9ICJbXSIgfQogICAgICAk +Ym9keVR4dCA9ICd7Im9rIjp0cnVlLCJlbnRyaWVzIjonICsgJGFyciArICd9JwogICAgICAkYiA9 +IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJGJvZHlUeHQpCiAgICAgICRj +dHguUmVzcG9uc2UuQ29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYt +OCIKICAgICAgJGN0eC5SZXNwb25zZS5PdXRwdXRTdHJlYW0uV3JpdGUoJGIsIDAsICRiLkxlbmd0 +aCk7ICRjdHguUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkKICAgICAgY29udGludWUKICAg +IH0KICAgICMgLS0tLSAvYXBpL2FyenRsaXN0ZSAoc3BlaWNoZXJuOiB1cHNlcnQvZGVsZXRlL3By +dW5lL3JlcGxhY2UgLT4gU2VydmVyIG1lcmdlZCBqZSBaZWlsZSkgLS0tLQogICAgaWYgKCRwYXRo +IC1lcSAiL2FwaS9hcnp0bGlzdGUiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiUE9TVCIpIHsK +ICAgICAgJGZ1bGwgPSBSZXNvbHZlLVRhcmdldCAiZG9rdW1lbnRlL2pzb24vYXJ6dGxpc3RlLmpz +b24iCiAgICAgIGlmICgtbm90ICRmdWxsKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNl +OyBlcnJvciA9ICJQZmFkIG5pY2h0IGVybGF1YnQuIiB9IDQwMzsgY29udGludWUgfQogICAgICAk +ZCA9IChSZWFkLUJvZHkgJGN0eCkgfCBDb252ZXJ0RnJvbS1Kc29uCiAgICAgICRvcCA9IFtzdHJp +bmddJGQub3AKICAgICAgJHJhd2N1ciA9ICIiCiAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQ +YXRoICRmdWxsKSB7IHRyeSB7ICRyYXdjdXIgPSBHZXQtQ29udGVudCAkZnVsbCAtUmF3IC1FbmNv +ZGluZyBVVEY4IH0gY2F0Y2gge30gfQogICAgICAkY3VyID0gQCgpCiAgICAgIGlmICgkcmF3Y3Vy +IC1hbmQgJHJhd2N1ci5UcmltKCkpIHsKICAgICAgICB0cnkgeyAkY3VyID0gQCgkcmF3Y3VyIHwg +Q29udmVydEZyb20tSnNvbikgfQogICAgICAgIGNhdGNoIHsKICAgICAgICAgICMgQmVzdGVoZW5k +ZSBMaXN0ZSBuaWNodCBsZXNiYXIgLT4gTklFTUFMUyB1ZWJlcnNjaHJlaWJlbiAoc29uc3QgVG90 +YWx2ZXJsdXN0KQogICAgICAgICAgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9y +ID0gIkJlc3RlaGVuZGUgTGlzdGUgbmljaHQgbGVzYmFyIC0gU3BlaWNoZXJuIGFiZ2Vicm9jaGVu +LCBuaWNodHMgZ2VhZW5kZXJ0LiIgfSA1MDA7IGNvbnRpbnVlCiAgICAgICAgfQogICAgICB9CiAg +ICAgICRjdXIgPSBAKCRjdXIgfCBXaGVyZS1PYmplY3QgeyAkXyAtbmUgJG51bGwgfSkKICAgICAg +JGJlZm9yZSA9ICRjdXIuQ291bnQKICAgICAgaWYgKCRvcCAtZXEgInVwc2VydCIpIHsKICAgICAg +ICAkZSA9ICRkLmVudHJ5CiAgICAgICAgaWYgKC1ub3QgJGUgLW9yIC1ub3QgJGUuaWQpIHsgU2Vu +ZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gImVudHJ5L2lkIGZlaGx0IiB9IDQw +MDsgY29udGludWUgfQogICAgICAgICRpZCA9IFtzdHJpbmddJGUuaWQ7ICRvdXQgPSBAKCk7ICRm +b3VuZCA9ICRmYWxzZQogICAgICAgIGZvcmVhY2ggKCR4IGluICRjdXIpIHsgaWYgKChbc3RyaW5n +XSR4LmlkKSAtZXEgJGlkKSB7ICRvdXQgKz0gJGU7ICRmb3VuZCA9ICR0cnVlIH0gZWxzZSB7ICRv +dXQgKz0gJHggfSB9CiAgICAgICAgaWYgKC1ub3QgJGZvdW5kKSB7ICRvdXQgKz0gJGUgfQogICAg +ICAgICRjdXIgPSAkb3V0CiAgICAgIH0gZWxzZWlmICgkb3AgLWVxICJkZWxldGUiKSB7CiAgICAg +ICAgJGlkID0gW3N0cmluZ10kZC5pZAogICAgICAgIGlmICgtbm90ICRpZCkgeyBTZW5kLUpzb24g +JGN0eCBAeyBvayA9ICRmYWxzZTsgZXJyb3IgPSAiTG9lc2NoZW4gb2huZSBpZCBhYmdlbGVobnQu +IiB9IDQwMDsgY29udGludWUgfQogICAgICAgICRjdXIgPSBAKCRjdXIgfCBXaGVyZS1PYmplY3Qg +eyAoW3N0cmluZ10kXy5pZCkgLW5lICRpZCB9KQogICAgICAgICMgU0lDSEVSSEVJVFNORVRaOiBl +aW4gZWluemVsbmVzIExvZXNjaGVuIGRhcmYgTklFIG1laHIgYWxzIGVpbmUgWmVpbGUgZW50ZmVy +bmVuCiAgICAgICAgaWYgKCgkYmVmb3JlIC0gJGN1ci5Db3VudCkgLWd0IDEpIHsgU2VuZC1Kc29u +ICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIlNpY2hlcmhlaXRzbmV0ejogTG9lc2NoZW4g +aGFldHRlIG1laHJlcmUgWmVpbGVuIGVudGZlcm50IC0gYWJnZWJyb2NoZW4sIG5pY2h0cyBnZWFl +bmRlcnQuIiB9IDQwOTsgY29udGludWUgfQogICAgICB9IGVsc2VpZiAoJG9wIC1lcSAicHJ1bmUi +KSB7CiAgICAgICAgJGN1dG9mZiA9IFtzdHJpbmddJGQuY3V0b2ZmCiAgICAgICAgaWYgKCRjdXRv +ZmYpIHsgJGN1ciA9IEAoJGN1ciB8IFdoZXJlLU9iamVjdCB7IChbc3RyaW5nXSRfLnRzKSAtZ2Ug +JGN1dG9mZiB9KSB9CiAgICAgIH0gZWxzZWlmICgkb3AgLWVxICJyZXBsYWNlIikgewogICAgICAg +IGlmICgtbm90ICRkLmVudHJpZXMpIHsgU2VuZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVy +cm9yID0gInJlcGxhY2Ugb2huZSBlbnRyaWVzIGFiZ2VsZWhudC4iIH0gNDAwOyBjb250aW51ZSB9 +CiAgICAgICAgJGN1ciA9IEAoJGQuZW50cmllcyB8IFdoZXJlLU9iamVjdCB7ICRfIC1uZSAkbnVs +bCB9KQogICAgICB9IGVsc2UgewogICAgICAgIFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNl +OyBlcnJvciA9ICJ1bmJla2FubnRlIE9wZXJhdGlvbiIgfSA0MDA7IGNvbnRpbnVlCiAgICAgIH0K +ICAgICAgaWYgKCRjdXIuQ291bnQgLWVxIDApIHsgJGpzb24gPSAiW10iIH0KICAgICAgZWxzZWlm +ICgkY3VyLkNvdW50IC1lcSAxKSB7ICRqc29uID0gIlsiICsgKCRjdXJbMF0gfCBDb252ZXJ0VG8t +SnNvbiAtRGVwdGggMTIgLUNvbXByZXNzKSArICJdIiB9CiAgICAgIGVsc2UgeyAkanNvbiA9ICRj +dXIgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMTIgLUNvbXByZXNzIH0KICAgICAgJGpkaXIgPSBT +cGxpdC1QYXRoIC1QYXJlbnQgJGZ1bGwKICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJh +bFBhdGggJGpkaXIpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJGpkaXIg +LUZvcmNlIHwgT3V0LU51bGwgfQogICAgICAkdG1wID0gR2V0LVRtcFBhdGggJGZ1bGwKICAgICAg +W1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCR0bXAsICRqc29uLCAkdXRmOCkKICAgICAg +UmVwbGFjZS1GaWxlICR0bXAgJGZ1bGwKICAgICAgJGJvZHlUeHQgPSAneyJvayI6dHJ1ZSwiZW50 +cmllcyI6JyArICRqc29uICsgJ30nCiAgICAgICRiID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6 +VVRGOC5HZXRCeXRlcygkYm9keVR4dCkKICAgICAgJGN0eC5SZXNwb25zZS5Db250ZW50VHlwZSA9 +ICJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IgogICAgICAkY3R4LlJlc3BvbnNlLk91 +dHB1dFN0cmVhbS5Xcml0ZSgkYiwgMCwgJGIuTGVuZ3RoKTsgJGN0eC5SZXNwb25zZS5PdXRwdXRT +dHJlYW0uQ2xvc2UoKQogICAgICBjb250aW51ZQogICAgfQogICAgIyAtLS0tIC9hcGkvYXJ6dGJh +Y2t1cCAoQ1NWIG5hY2ggZG9rdW1lbnRlL0RhdGVuc2ljaGVydW5nIHNjaHJlaWJlbikgLS0tLQog +ICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9hcnp0YmFja3VwIiAtYW5kICRyZXEuSHR0cE1ldGhvZCAt +ZXEgIlBPU1QiKSB7CiAgICAgICRkID0gKFJlYWQtQm9keSAkY3R4KSB8IENvbnZlcnRGcm9tLUpz +b24KICAgICAgJGNzdiA9IFtzdHJpbmddJGQuY3N2CiAgICAgIGlmICgtbm90ICRjc3YpIHsgU2Vu +ZC1Kc29uICRjdHggQHsgb2sgPSAkZmFsc2U7IGVycm9yID0gIkxlZXJlciBJbmhhbHQuIiB9IDQw +MDsgY29udGludWUgfQogICAgICAkYmRpciA9IFJlc29sdmUtVGFyZ2V0ICJkb2t1bWVudGUvRGF0 +ZW5zaWNoZXJ1bmciCiAgICAgIGlmICgtbm90ICRiZGlyKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9r +ID0gJGZhbHNlOyBlcnJvciA9ICJQZmFkIG5pY2h0IGVybGF1YnQuIiB9IDQwMzsgY29udGludWUg +fQogICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmRpcikpIHsgTmV3LUl0 +ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkYmRpciAtRm9yY2UgfCBPdXQtTnVsbCB9CiAg +ICAgICRzdGFtcCA9IChHZXQtRGF0ZSkuVG9TdHJpbmcoInl5eXlNTWRkX0hIbW1zcyIpCiAgICAg +ICRmbmFtZSA9ICJBcnp0YW5mb3JkZXJ1bmdlbl8kc3RhbXAuY3N2IgogICAgICBbU3lzdGVtLklP +LkZpbGVdOjpXcml0ZUFsbFRleHQoKEpvaW4tUGF0aCAkYmRpciAkZm5hbWUpLCAkY3N2LCAkdXRm +OCkKICAgICAgV3JpdGUtTG9nICgiQVJaVEJBQ0tVUCAiICsgJGZuYW1lKQogICAgICBTZW5kLUpz +b24gJGN0eCBAeyBvayA9ICR0cnVlOyBmaWxlID0gJGZuYW1lIH07IGNvbnRpbnVlCiAgICB9Cgog +ICAgIyAtLS0tIC9hcGkvZHJhZnQgKEF1dG9zYXZlLVp3aXNjaGVuc3RhbmQpIC0tLS0KICAgIGlm +ICgkcGF0aCAtZXEgIi9hcGkvZHJhZnQiIC1hbmQgJHJlcS5IdHRwTWV0aG9kIC1lcSAiUE9TVCIp +IHsKICAgICAgJGQgPSAoUmVhZC1Cb2R5ICRjdHgpIHwgQ29udmVydEZyb20tSnNvbgogICAgICBp +ZiAoLW5vdCAkZC5raW5kIC1vciAtbm90ICRkLnRhcmdldElkKSB7IHRocm93ICJraW5kL3Rhcmdl +dElkIGZlaGx0IiB9CiAgICAgICRyZWMgPSBbb3JkZXJlZF1AeyBraW5kID0gW3N0cmluZ10kZC5r +aW5kOyB0YXJnZXRJZCA9IFtzdHJpbmddJGQudGFyZ2V0SWQ7IGF1dGhvciA9ICRtZTsgbmFtZSA9 +ICRtZU5hbWU7IHBheWxvYWQgPSAkZC5wYXlsb2FkOyBiYXNlUmV2ID0gJGQuYmFzZVJldjsgdXBk +YXRlZEF0ID0gKE5vdy1Jc28pIH0KICAgICAgV3JpdGUtU3RhdGVKc29uIChKb2luLVBhdGggJGRy +YWZ0c0RpciAoR2V0LVN0YXRlTmFtZSAkZC5raW5kICRkLnRhcmdldElkKSkgJHJlYwogICAgICBT +ZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlIH07IGNvbnRpbnVlCiAgICB9CiAgICBpZiAoJHBh +dGggLWVxICIvYXBpL2RyYWZ0IiAtYW5kICRyZXEuSHR0cE1ldGhvZCAtZXEgIkRFTEVURSIpIHsK +ICAgICAgJHAgPSBKb2luLVBhdGggJGRyYWZ0c0RpciAoR2V0LVN0YXRlTmFtZSAkcmVxLlF1ZXJ5 +U3RyaW5nWyJraW5kIl0gJHJlcS5RdWVyeVN0cmluZ1sidGFyZ2V0SWQiXSkKICAgICAgaWYgKFRl +c3QtUGF0aCAkcCkgeyBSZW1vdmUtSXRlbSAkcCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5 +Q29udGludWUgfQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlIH07IGNvbnRpbnVl +CiAgICB9CgogICAgIyAtLS0tIC9hcGkvbG9jayAoUHJhZXNlbno6ICJ3aXJkIGdlcmFkZSBiZWFy +YmVpdGV0IikgLS0tLQogICAgaWYgKCRwYXRoIC1lcSAiL2FwaS9sb2NrIiAtYW5kICRyZXEuSHR0 +cE1ldGhvZCAtZXEgIlBPU1QiKSB7CiAgICAgICRkID0gKFJlYWQtQm9keSAkY3R4KSB8IENvbnZl +cnRGcm9tLUpzb24KICAgICAgaWYgKC1ub3QgJGQua2luZCAtb3IgLW5vdCAkZC50YXJnZXRJZCkg +eyB0aHJvdyAia2luZC90YXJnZXRJZCBmZWhsdCIgfQogICAgICAkcmVjID0gW29yZGVyZWRdQHsg +a2luZCA9IFtzdHJpbmddJGQua2luZDsgdGFyZ2V0SWQgPSBbc3RyaW5nXSRkLnRhcmdldElkOyBh +dXRob3IgPSAkbWU7IG5hbWUgPSAkbWVOYW1lOyBsYWJlbCA9IFtzdHJpbmddJGQubGFiZWw7IHRz +ID0gKE5vdy1Jc28pIH0KICAgICAgV3JpdGUtU3RhdGVKc29uIChKb2luLVBhdGggJGxvY2tzRGly +IChHZXQtU3RhdGVOYW1lICRkLmtpbmQgJGQudGFyZ2V0SWQpKSAkcmVjCiAgICAgIFNlbmQtSnNv +biAkY3R4IEB7IG9rID0gJHRydWUgfTsgY29udGludWUKICAgIH0KICAgIGlmICgkcGF0aCAtZXEg +Ii9hcGkvbG9jayIgLWFuZCAkcmVxLkh0dHBNZXRob2QgLWVxICJERUxFVEUiKSB7CiAgICAgICRw +ID0gSm9pbi1QYXRoICRsb2Nrc0RpciAoR2V0LVN0YXRlTmFtZSAkcmVxLlF1ZXJ5U3RyaW5nWyJr +aW5kIl0gJHJlcS5RdWVyeVN0cmluZ1sidGFyZ2V0SWQiXSkKICAgICAgaWYgKFRlc3QtUGF0aCAk +cCkgeyBSZW1vdmUtSXRlbSAkcCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUg +fQogICAgICBTZW5kLUpzb24gJGN0eCBAeyBvayA9ICR0cnVlIH07IGNvbnRpbnVlCiAgICB9Cgog +ICAgIyAtLS0tIHVuYmVrYW5udGUgL2FwaS8qIHNhdWJlciBtaXQgNDA0IGJlYW50d29ydGVuIChO +SUNIVCBpbiBkaWUgc3RhdGlzY2hlIEF1c2xpZWZlcnVuZyBmYWxsZW4pIC0tLS0KICAgIGlmICgk +cGF0aC5TdGFydHNXaXRoKCIvYXBpLyIpKSB7IFNlbmQtSnNvbiAkY3R4IEB7IG9rID0gJGZhbHNl +OyBlcnJvciA9ICJVbmJla2FubnRlciBFbmRwb2ludCIgfSA0MDQ7IGNvbnRpbnVlIH0KCiAgICAj +IC0tLS0gc3RhdGlzY2hlIEF1c2xpZWZlcnVuZyAtLS0tCiAgICBpZiAoJHJlcS5IdHRwTWV0aG9k +IC1lcSAiR0VUIikgewogICAgICAkcmVsID0gW3VyaV06OlVuZXNjYXBlRGF0YVN0cmluZygkcGF0 +aC5UcmltU3RhcnQoIi8iKSkKICAgICAgaWYgKC1ub3QgJHJlbCkgeyAkcmVsID0gImluZGV4Lmh0 +bWwiIH0KICAgICAgJGZ1bGwgPSBSZXNvbHZlLVRhcmdldCAkcmVsCiAgICAgIGlmICgtbm90ICRm +dWxsKSB7ICRjdHguUmVzcG9uc2UuU3RhdHVzQ29kZSA9IDQwMzsgJGN0eC5SZXNwb25zZS5DbG9z +ZSgpOyBjb250aW51ZSB9CiAgICAgIGlmIChUZXN0LVBhdGggJGZ1bGwgLVBhdGhUeXBlIENvbnRh +aW5lcikgeyAkZnVsbCA9IEpvaW4tUGF0aCAkZnVsbCAiaW5kZXguaHRtbCIgfQogICAgICBTZW5k +LUZpbGUgJGN0eCAkZnVsbDsgY29udGludWUKICAgIH0KCiAgICAkY3R4LlJlc3BvbnNlLlN0YXR1 +c0NvZGUgPSA0MDU7ICRjdHguUmVzcG9uc2UuQ2xvc2UoKQogIH0gY2F0Y2ggewogICAgIyBHZW5l +cmlzY2hlIDUwMCBvaG5lIEV4Y2VwdGlvbi1EZXRhaWxzIGFuIGRlbiBDbGllbnQgKGtlaW4gSW5m +by1MZWFrKTsgRGV0YWlsIG51ciBpbnMgTG9nLgogICAgdHJ5IHsgU2VuZC1Kc29uICRjdHggQHsg +b2sgPSAkZmFsc2U7IGVycm9yID0gIkludGVybmVyIEZlaGxlciIgfSA1MDAgfSBjYXRjaCB7fQog +ICAgV3JpdGUtTG9nICgiRkVITEVSICIgKyAkXy5FeGNlcHRpb24uTWVzc2FnZSkKICB9Cn0K +### FILE: index.html | 14775 +PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIiBkYXRhLXRoZW1lPSJsaWdodCI+CjxoZWFk +Pgo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3 +aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cjx0aXRsZT5Qb3J0YWwgVW5pb24g +wrcgTGVpdHN0ZWxsZS1JbmZvcm1hdGlvbnNwb3J0YWw8L3RpdGxlPgo8bGluayByZWw9InN0eWxl +c2hlZXQiIGhyZWY9ImFzc2V0cy9jc3MvcG9ydGFsLmNzcz92PXAxOS0zIj4KPC9oZWFkPgo8Ym9k +eT4KPGRpdiBjbGFzcz0iYXBwIj4KCiAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 +IFRPUEJBUiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogIDxoZWFkZXIgY2xhc3M9 +InRvcGJhciI+CiAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ0biBtZW51LXRvZ2dsZSIgaWQ9Im1l +bnUtbCIgdGl0bGU9Ik5hdmlnYXRpb24iIGFyaWEtbGFiZWw9Ik5hdmlnYXRpb24iPjwvYnV0dG9u +PgogICAgPGRpdiBjbGFzcz0iYnJhbmQiPgogICAgICA8ZGl2IGNsYXNzPSJsb2dvLXNsb3QiIGlk +PSJsb2dvLXNsb3QiIHRpdGxlPSJMb2dvIGFibGVnZW4gb2RlciBrbGlja2VuIiBkYXRhLXRrZXk9 +InRvcGJhci5sb2dvSGludCIgZGF0YS10YXR0cj0idGl0bGUiIGRhdGEtdGxhYmVsPSJUb3BiYXI6 +IExvZ28tVG9vbHRpcCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImJyYW5kLW5hbWUiPjxiPlBv +cnRhbCBVbmlvbjwvYj48c3Bhbj5MZWl0c3RlbGxlIERvcnRtdW5kPC9zcGFuPjwvZGl2PgogICAg +PC9kaXY+CiAgICA8bmF2IGNsYXNzPSJhei1yYWlsIiBpZD0iYXotcmFpbCIgYXJpYS1sYWJlbD0i +U3RpY2h3b3J0cmVnaXN0ZXIgQeKAk1oiPjwvbmF2PgogICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4K +ICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLWJveCI+CiAgICAgICAgPHNwYW4gaWQ9InNlYXJjaC1p +YyI+PC9zcGFuPgogICAgICAgIDxpbnB1dCBpZD0ic2VhcmNoLWlucHV0IiB0eXBlPSJ0ZXh0IiBw +bGFjZWhvbGRlcj0iU3VjaGVuIOKAlCBEb2t1bWVudGUsIEFydGlrZWwsIExpbmtzLCBNZWxkdW5n +ZW7igKYiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhcmlhLWxhYmVsPSJHbG9iYWxlIFN1Y2hlIiBkYXRh +LXRrZXk9InNlYXJjaC5wbGFjZWhvbGRlciIgZGF0YS10YXR0cj0icGxhY2Vob2xkZXIiIGRhdGEt +dGxhYmVsPSJUb3BiYXI6IFN1Y2hmZWxkLVBsYXR6aGFsdGVyIj4KICAgICAgICA8c3BhbiBjbGFz +cz0ia2JkIiBkYXRhLXRrZXk9InRvcGJhci5rYmQiIGRhdGEtdGxhYmVsPSJUb3BiYXI6IFRhc3Rl +bmvDvHJ6ZWwiPlN0cmcgSzwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNt +ZC1yZXN1bHRzIiBpZD0iY21kLXJlc3VsdHMiIGhpZGRlbj48L2Rpdj4KICAgIDwvZGl2PgogICAg +PGRpdiBjbGFzcz0idG9wLWFjdGlvbnMiPgogICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ0biBo +aWRlLXNtIiBpZD0iY29sbGFwc2UtbCIgdGl0bGU9IkxpbmtlIFNwYWx0ZSIgZGF0YS10a2V5PSJ0 +b3BiYXIuY29sbGFwc2VMIiBkYXRhLXRhdHRyPSJ0aXRsZSIgZGF0YS10bGFiZWw9IlRvcGJhcjog +S25vcGYgbGlua2UgU3BhbHRlIj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1i +dG4gaGlkZS1zbSIgaWQ9ImNvbGxhcHNlLXIiIHRpdGxlPSJSZWNodGUgU3BhbHRlIiBkYXRhLXRr +ZXk9InRvcGJhci5jb2xsYXBzZVIiIGRhdGEtdGF0dHI9InRpdGxlIiBkYXRhLXRsYWJlbD0iVG9w +YmFyOiBLbm9wZiByZWNodGUgU3BhbHRlIj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0i +cGlsbC1idG4gYmFvLWVudGVyLWJ0biIgaWQ9ImJhby1lbnRlciIgdGl0bGU9IkluIGRpZSBCQU8g +c3ByaW5nZW4iPjxzcGFuIGlkPSJiYW8taWMiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaGlkZS1zbSI+ +QkFPPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJwaWxsLWJ0biIgaWQ9ImVk +aXQtdG9nZ2xlIiB0aXRsZT0iRGF0ZW5wZmxlZ2UiPjxzcGFuIGlkPSJlZGl0LWljIj48L3NwYW4+ +PHNwYW4gY2xhc3M9ImhpZGUtc20iIGRhdGEtdGtleT0idG9wYmFyLmVkaXQiIGRhdGEtdGxhYmVs +PSJUb3BiYXI6IEtub3BmIERhdGVucGZsZWdlIj5EYXRlbnBmbGVnZTwvc3Bhbj48L2J1dHRvbj4K +ICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idG4gc3RhZmYtb25seSIgaWQ9ImNvbGxhYi1idG4i +IHRpdGxlPSJBa3Rpdml0w6R0ICZhbXA7IFp3aXNjaGVuc3TDpG5kZSI+PC9idXR0b24+CiAgICAg +IDxidXR0b24gY2xhc3M9Imljb24tYnRuIGFkbWluLW9ubHkgYWx3YXlzIiBpZD0iYWRtaW4taHVi +LWJ0biIgdGl0bGU9IkFkbWluLVdlcmt6ZXVnZSIgZGF0YS10a2V5PSJ0b3BiYXIuYWRtaW4iIGRh +dGEtdGF0dHI9InRpdGxlIiBkYXRhLXRsYWJlbD0iVG9wYmFyOiBLbm9wZiBBZG1pbi1XZXJremV1 +Z2UiPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ0biIgaWQ9InRoZW1lLXRv +Z2dsZSIgdGl0bGU9IkRlc2lnbiI+PC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9Imljb24t +YnRuIG1lbnUtdG9nZ2xlIiBpZD0ibWVudS1yIiB0aXRsZT0iU2NobmVsbHp1Z3JpZmZlIiBhcmlh +LWxhYmVsPSJTY2huZWxsenVncmlmZmUiPjwvYnV0dG9uPgogICAgPC9kaXY+CiAgPC9oZWFkZXI+ +CgogIDwhLS0gPT09PT09PT09PT09PT09PT09PT09IERBVEVOUEZMRUdFLVNUQVRVUyA9PT09PT09 +PT09PT09PT09PT09PT0gLS0+CiAgPCEtLSBOdXIgaW0gUGZsZWdlLU1vZHVzIHNpY2h0YmFyIChi +b2R5LmVkaXRpbmcpOyBMZXNlciBzZWhlbiBlcyBuaWUuIFAudXBkYXRlQmFubmVyKCkgZnVlbGx0 +ICNkcmFmdC1pbmZvLiAtLT4KICA8ZGl2IGNsYXNzPSJlZGl0LWJhbm5lciI+CiAgICA8c3BhbiBj +bGFzcz0idGFnIiBkYXRhLXRrZXk9ImJhbm5lci5lZGl0IiBkYXRhLXRsYWJlbD0iQmFubmVyOiBE +YXRlbnBmbGVnZSBha3RpdiI+RGF0ZW5wZmxlZ2UgYWt0aXY8L3NwYW4+CiAgICA8c3BhbiBjbGFz +cz0iZHJhZnQtaW5mbyIgaWQ9ImRyYWZ0LWluZm8iPjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJz +cGFjZXIiPjwvc3Bhbj4KICA8L2Rpdj4KCiAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 +PT09IFNIRUxMID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgPGRpdiBjbGFzcz0i +c2hlbGwiIGlkPSJzaGVsbCI+CiAgICA8YXNpZGUgY2xhc3M9InJhaWwgcmFpbC1sIj4KICAgICAg +PGRpdiBjbGFzcz0icmFpbC1oZWFkIj48aDIgZGF0YS10a2V5PSJyYWlsLm5hdiIgZGF0YS10bGFi +ZWw9IsOcYmVyc2NocmlmdCBsaW5rZSBTcGFsdGUiPk5hdmlnYXRpb248L2gyPjxidXR0b24gdHlw +ZT0iYnV0dG9uIiBjbGFzcz0iYWRkLWJ0biBlZGl0LW9ubHkiIGlkPSJhcnQtYWRkIj48c3BhbiBp +ZD0iYXJ0YWRkLWljIj48L3NwYW4+PHNwYW4gZGF0YS10a2V5PSJyYWlsLmFkZEFydGljbGUiIGRh +dGEtdGxhYmVsPSJLbm9wZiBBcnRpa2VsIj5BcnRpa2VsPC9zcGFuPjwvYnV0dG9uPjwvZGl2Pgog +ICAgICA8ZGl2IGNsYXNzPSJyYWlsLXNjcm9sbCIgaWQ9InNpZGViYXIiPjwvZGl2PgogICAgICA8 +ZGl2IGNsYXNzPSJyYWlsLWZvb3QiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icmFpbC1m +b290LWxpbmsiIGlkPSJpbXByZXNzdW0tbGluayI+SW1wcmVzc3VtICZhbXA7IFN1cHBvcnQ8L2J1 +dHRvbj48L2Rpdj4KICAgIDwvYXNpZGU+CgogICAgPG1haW4gY2xhc3M9ImNlbnRlciI+CiAgICAg +IDxkaXYgY2xhc3M9ImZlZWQtYWN0aW9uYmFyIj48YnV0dG9uIGNsYXNzPSJidG4gcHJpbWFyeSIg +aWQ9ImZlZWQtYWRkIj48c3BhbiBpZD0iYWRkLWljIj48L3NwYW4+PHNwYW4gZGF0YS10a2V5PSJm +ZWVkLmFkZEJ0biIgZGF0YS10bGFiZWw9Iktub3BmIE1lbGR1bmciPk1lbGR1bmc8L3NwYW4+PC9i +dXR0b24+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZlZWQtc2Nyb2xsIiBpZD0iZmVlZC1zY3Jv +bGwiPjxkaXYgaWQ9ImZlZWQiPjwvZGl2PjwvZGl2PgoKICAgICAgPCEtLSBEb2t1bWVudC0vQXJ0 +aWtlbC1BbnNpY2h0IC0tPgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LXZpZXciPgogICAgICAg +IDxkaXYgY2xhc3M9ImN2LWJhciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gZ2hvc3Qi +IGlkPSJjdi1iYWNrIj48c3BhbiBpZD0iYmFjay1pYyI+PC9zcGFuPjxzcGFuIGRhdGEtdGtleT0i +ZG9jLmJhY2siIGRhdGEtdGxhYmVsPSJEb2t1OiBadXLDvGNrLUtub3BmIj5adXLDvGNrIHp1ciDD +nGJlcnNpY2h0PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhdGggbW9u +byIgaWQ9ImN2LXBhdGgiPjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJmbGV4OjEiPjwv +c3Bhbj4KICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGdob3N0IGN2 +LXBkZiIgaWQ9ImN2LXBkZiIgdGl0bGU9Ik1pdCBLbGljayB3aXJkIGRlciBBcnRpa2VsaW5oYWx0 +IGluIGRlbiBad2lzY2hlbnNwZWljaGVyIGdlbGVndCwgc28gZGFzcyBkaWUgSW5mb3JtYXRpb24g +ZGlyZWt0IGluIFRlYW13aXJlIGVpbmdlZsO8Z3Qgd2VyZGVuIGthbm4uIj48c3BhbiBpZD0iY3Zw +ZGYtaWMiPjwvc3Bhbj48c3BhbiBkYXRhLXRrZXk9ImRvYy5jb3B5IiBkYXRhLXRsYWJlbD0iRG9r +dTogS29waWVyZW4tS25vcGYiPlRlYW1XaXJlPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgPGJ1 +dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gZ2hvc3QgZWRpdC1vbmx5IiBpZD0iY3YtZWRp +dCI+PHNwYW4gaWQ9ImN2ZWRpdC1pYyI+PC9zcGFuPjxzcGFuIGRhdGEtdGtleT0iZG9jLmVkaXQi +IGRhdGEtdGxhYmVsPSJEb2t1OiBCZWFyYmVpdGVuLUtub3BmIj5CZWFyYmVpdGVuPC9zcGFuPjwv +YnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxpZnJhbWUgY2xhc3M9ImN2LWZyYW1lIiBp +ZD0iY3YtZnJhbWUiIHNyYz0iYWJvdXQ6YmxhbmsiIHRpdGxlPSJEb2t1bWVudCI+PC9pZnJhbWU+ +CiAgICAgICAgPGRpdiBjbGFzcz0iY3YtYXJ0aWNsZSIgaWQ9ImN2LWFydGljbGUiPjwvZGl2Pgog +ICAgICAgIDxkaXYgY2xhc3M9InByaW50LWZvb3QiIGFyaWEtaGlkZGVuPSJ0cnVlIj5Qb3J0YWwg +VW5pb24gwrcgTGVpdHN0ZWxsZSBEb3J0bXVuZDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvbWFp +bj4KCiAgICA8YXNpZGUgY2xhc3M9InJhaWwgcmFpbC1yIj4KICAgICAgPGRpdiBjbGFzcz0icmFp +bC1oZWFkIj48aDIgZGF0YS10a2V5PSJyYWlsLnF1aWNrIiBkYXRhLXRsYWJlbD0iw5xiZXJzY2hy +aWZ0IHJlY2h0ZSBTcGFsdGUiPlNjaG5lbGx6dWdyaWZmZTwvaDI+PC9kaXY+CiAgICAgIDxkaXYg +Y2xhc3M9InJhaWwtc2Nyb2xsIiBpZD0icGFuZWxzIj48L2Rpdj4KICAgIDwvYXNpZGU+CiAgPC9k +aXY+CjwvZGl2PgoKPCEtLSA9PT09PT09PT09PT09PT09PT09PT0gQeKAk1ogUkVHSVNURVIgT1ZF +UkxBWSA9PT09PT09PT09PT09PT09PT09PT0gLS0+CjxkaXYgY2xhc3M9Im92ZXJsYXkiIGlkPSJh +ei1vdmVybGF5Ij4KICA8ZGl2IGNsYXNzPSJvdmVybGF5LWJnIiBpZD0iYXotYmciPjwvZGl2Pgog +IDxkaXYgY2xhc3M9ImF6LXBhbmVsIiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9InRydWUiIGFy +aWEtbGFiZWw9IkHigJNaLVJlZ2lzdGVyIj4KICAgIDxkaXYgY2xhc3M9ImF6LWhlYWQiPjxzcGFu +IGlkPSJhemgtaWMiPjwvc3Bhbj48aDIgZGF0YS10a2V5PSJhei50aXRsZSIgZGF0YS10bGFiZWw9 +IkHigJNaOiBUaXRlbCI+U3RpY2h3b3J0cmVnaXN0ZXIgQeKAk1o8L2gyPjxzcGFuIGNsYXNzPSJt +b25vIiBpZD0iYXotY291bnQiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZmxleDoxIj48L3NwYW4+PGJ1 +dHRvbiBjbGFzcz0iaWNvbi1idG4iIGlkPSJhei1jbG9zZSIgdGl0bGU9IlNjaGxpZcOfZW4iIGRh +dGEtdGtleT0iYnRuLmNsb3NlIiBkYXRhLXRhdHRyPSJ0aXRsZSIgZGF0YS10bGFiZWw9Iktub3Bm +IFNjaGxpZcOfZW4gKFRvb2x0aXApIj48L2J1dHRvbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImF6 +LXN0cmlwIiBpZD0iYXotc3RyaXAiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iYXotYm9keSIgaWQ9 +ImF6LWJvZHkiPjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gPT09PT09PT09PT09PT09PT09 +PT09IEJVTExFVElOLURJQUxPRyA9PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgo8ZGlhbG9n +IGNsYXNzPSJkbGciIGlkPSJidWxsLWRsZyI+CiAgPGRpdiBjbGFzcz0iZGxnLWhlYWQiPjxoMiBp +ZD0iYmQtdGl0bGUiPk5ldWUgTWVsZHVuZzwvaDI+PGJ1dHRvbiBjbGFzcz0iaWNvbi1idG4geCIg +aWQ9ImJkLXgiIHRpdGxlPSJTY2hsaWXDn2VuIiBkYXRhLXRrZXk9ImJ0bi5jbG9zZSIgZGF0YS10 +YXR0cj0idGl0bGUiPjwvYnV0dG9uPjwvZGl2PgogIDxkaXYgY2xhc3M9ImRsZy1ib2R5Ij4KICAg +IDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJiZi10aXRsZSIgZGF0YS10a2V5PSJidWxs +LnRpdGxlIiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogRmVsZCBUaXRlbCI+VGl0ZWw8L2xhYmVsPjxp +bnB1dCBpZD0iYmYtdGl0bGUiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJ6LiBCLiBGYWhyYmFo +bnNhbmllcnVuZyBNYXJrZ3JhZmVuc3RyYXNzZSIgZGF0YS10a2V5PSJidWxsLnRpdGxlUGgiIGRh +dGEtdGF0dHI9InBsYWNlaG9sZGVyIiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogUGxhdHpoYWx0ZXIg +VGl0ZWwiPjxkaXYgY2xhc3M9ImVyciIgaWQ9ImJmLWVyciIgaGlkZGVuPjwvZGl2PjwvZGl2Pgog +ICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9ImJmLWJvZHkiIGRhdGEtdGtleT0iYnVs +bC5ib2R5IiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogRmVsZCBJbmhhbHQiPkluaGFsdDwvbGFiZWw+ +PHRleHRhcmVhIGlkPSJiZi1ib2R5IiBwbGFjZWhvbGRlcj0iVGV4dCBkZXIgTWVsZHVuZ+KApiYj +MTA7JiMxMDsqKmZldHQqKiB1bmQgW0xpbmtdKGh0dHBzOi8v4oCmKSBzaW5kIG3DtmdsaWNoLiI+ +PC90ZXh0YXJlYT48c3BhbiBjbGFzcz0iaGludCIgZGF0YS10a2V5PSJidWxsLmhpbnQiIGRhdGEt +dGxhYmVsPSJNZWxkdW5nOiBGb3JtYXRpZXJ1bmdzLUhpbndlaXMiPkZvcm1hdGllcnVuZzogKipm +ZXR0KiosIFplaWxlbnVtYnJ1Y2ggPSBuZXVlIFplaWxlLCBbQmVzY2hyaWZ0dW5nXShVUkwpIGbD +vHIgTGlua3MuPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93MiI+CiAgICAgIDxkaXYg +Y2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJiZi1kYXRlIiBkYXRhLXRrZXk9ImZpZWxkLmRhdGUi +IGRhdGEtdGxhYmVsPSJGZWxkIERhdHVtIj5EYXR1bTwvbGFiZWw+PGlucHV0IGlkPSJiZi1kYXRl +IiB0eXBlPSJkYXRlIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9 +ImJmLWF1dGhvciIgZGF0YS10a2V5PSJmaWVsZC5hdXRob3IiIGRhdGEtdGxhYmVsPSJGZWxkIFZl +cmZhc3Nlci9TdGVsbGUiPlZlcmZhc3NlciAvIFN0ZWxsZTwvbGFiZWw+PGlucHV0IGlkPSJiZi1h +dXRob3IiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJ6LiBCLiBER0wgLyBWSTMiPjwvZGl2Pgog +ICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGRhdGEtdGtleT0iYnVsbC5w +aW4iIGRhdGEtdGxhYmVsPSJNZWxkdW5nOiBGZWxkIEFucGlubmVuIj5BbnBpbm5lbjwvbGFiZWw+ +PGRpdiBjbGFzcz0idG9nZ2xlLXJvdyI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzd2l0 +Y2giIGlkPSJiZi1waW4iIGFyaWEtbGFiZWw9IkFucGlubmVuIj48L2J1dHRvbj48c3BhbiBjbGFz +cz0ibXV0ZWQiIGRhdGEtdGtleT0iYnVsbC5waW5IaW50IiBkYXRhLXRsYWJlbD0iTWVsZHVuZzog +QW5waW5uZW4tSGlud2VpcyI+T2JlbiBpbSBGZWxkIGZlc3RoYWx0ZW4gKHdpY2h0aWdlIERhdWVy +LUluZm8pLjwvc3Bhbj48L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwg +ZGF0YS10a2V5PSJidWxsLmhsIiBkYXRhLXRsYWJlbD0iTWVsZHVuZzogRmVsZCBIZXJ2b3JoZWJ1 +bmciPkhlcnZvcmhlYnVuZzwvbGFiZWw+PGRpdiBjbGFzcz0iaGwtcGljayIgaWQ9ImJmLWhsIj48 +L2Rpdj48c3BhbiBjbGFzcz0iaGludCIgZGF0YS10a2V5PSJidWxsLmhsSGludCIgZGF0YS10bGFi +ZWw9Ik1lbGR1bmc6IEhlcnZvcmhlYnVuZ3MtSGlud2VpcyI+V2ljaHRpZ2tlaXQgZmFyYmxpY2gg +a2VubnplaWNobmVuIOKAlCDigJ5XaWNodGlnIiBwdWxzaWVydC4gRmFyYmVuOiBFaW5zdGVsbHVu +Z2VuIOKGkiBGYXJiLVRva2Vucy48L3NwYW4+PC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0i +ZGxnLWZvb3QiPjxidXR0b24gY2xhc3M9ImJ0biBkYW5nZXIiIGlkPSJiZi1kZWwiIGRhdGEtdGtl +eT0iYnRuLmRlbGV0ZSIgZGF0YS10bGFiZWw9Iktub3BmIEzDtnNjaGVuIj5Mw7ZzY2hlbjwvYnV0 +dG9uPjxzcGFuIGNsYXNzPSJncm93Ij48L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYnRuIGdob3N0IiBp +ZD0iYmQtY2FuY2VsIiBkYXRhLXRrZXk9ImJ0bi5jYW5jZWwiIGRhdGEtdGxhYmVsPSJLbm9wZiBB +YmJyZWNoZW4iPkFiYnJlY2hlbjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0biBwcmltYXJ5IiBp +ZD0iYmQtc2F2ZSIgZGF0YS10a2V5PSJidG4uc2F2ZSIgZGF0YS10bGFiZWw9Iktub3BmIFNwZWlj +aGVybiI+U3BlaWNoZXJuPC9idXR0b24+PC9kaXY+CjwvZGlhbG9nPgoKPCEtLSA9PT09PT09PT09 +PT09PT09PT09PT0gQVJUSUtFTC1ESUFMT0cgPT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4K +PGRpYWxvZyBjbGFzcz0iZGxnIGRsZy13aWRlIiBpZD0iYXJ0LWRsZyI+CiAgPGRpdiBjbGFzcz0i +ZGxnLWhlYWQiPjxoMiBpZD0iYWQtdGl0bGUiPk5ldWVuIEFydGlrZWwgYW5sZWdlbjwvaDI+PGJ1 +dHRvbiBjbGFzcz0iaWNvbi1idG4geCIgaWQ9ImFkLXgiIHRpdGxlPSJTY2hsaWXDn2VuIiBkYXRh +LXRrZXk9ImJ0bi5jbG9zZSIgZGF0YS10YXR0cj0idGl0bGUiPjwvYnV0dG9uPjwvZGl2PgogIDxk +aXYgY2xhc3M9ImRsZy1ib2R5Ij4KICAgIDxkaXYgY2xhc3M9InJvdzIiPgogICAgICA8ZGl2IGNs +YXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iYXJ0LXNlY3Rpb24iIGRhdGEtdGtleT0iYXJ0LnNlY3Rp +b24iIGRhdGEtdGxhYmVsPSJBcnRpa2VsOiBGZWxkIE5hdmlnYXRpb25zYmVyZWljaCI+TmF2aWdh +dGlvbnNiZXJlaWNoPC9sYWJlbD48c2VsZWN0IGlkPSJhcnQtc2VjdGlvbiI+PC9zZWxlY3Q+PC9k +aXY+CiAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJhcnQtcGFyZW50IiBkYXRh +LXRrZXk9ImFydC5wYXJlbnQiIGRhdGEtdGxhYmVsPSJBcnRpa2VsOiBGZWxkIEVpbm9yZG51bmci +PkVpbm9yZG51bmc8L2xhYmVsPjxzZWxlY3QgaWQ9ImFydC1wYXJlbnQiPjwvc2VsZWN0PjwvZGl2 +PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iYXJ0LWYtdGl0 +bGUiIGRhdGEtdGtleT0iYXJ0LnRpdGxlIiBkYXRhLXRsYWJlbD0iQXJ0aWtlbDogRmVsZCBUaXRl +bCI+VGl0ZWw8L2xhYmVsPjxpbnB1dCBpZD0iYXJ0LWYtdGl0bGUiIHR5cGU9InRleHQiIHBsYWNl +aG9sZGVyPSLDnGJlcnNjaHJpZnQgZGVzIEFydGlrZWxzIiBkYXRhLXRrZXk9ImFydC50aXRsZVBo +IiBkYXRhLXRhdHRyPSJwbGFjZWhvbGRlciIgZGF0YS10bGFiZWw9IkFydGlrZWw6IFBsYXR6aGFs +dGVyIFRpdGVsIj48ZGl2IGNsYXNzPSJlcnIiIGlkPSJhcnQtZXJyIiBoaWRkZW4+PC9kaXY+PC9k +aXY+CiAgICA8ZGl2IGNsYXNzPSJyb3cyIj4KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJl +bCBmb3I9ImFydC1mLWRhdGUiIGRhdGEtdGtleT0iZmllbGQuZGF0ZSIgZGF0YS10bGFiZWw9IkZl +bGQgRGF0dW0iPkRhdHVtPC9sYWJlbD48aW5wdXQgaWQ9ImFydC1mLWRhdGUiIHR5cGU9ImRhdGUi +PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iYXJ0LWYtYXV0aG9y +IiBkYXRhLXRrZXk9ImZpZWxkLmF1dGhvciIgZGF0YS10bGFiZWw9IkZlbGQgVmVyZmFzc2VyL1N0 +ZWxsZSI+VmVyZmFzc2VyIC8gU3RlbGxlPC9sYWJlbD48aW5wdXQgaWQ9ImFydC1mLWF1dGhvciIg +dHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9InouIEIuIERHTCAvIFRlYW0gNSI+PC9kaXY+CiAgICA8 +L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImFydC1leHRyYSIgaWQ9ImFydC1leHRyYSI+PC9kaXY+CiAg +ICA8ZGl2IGNsYXNzPSJmaWVsZCI+CiAgICAgIDxsYWJlbCBkYXRhLXRrZXk9ImFydC5ib2R5IiBk +YXRhLXRsYWJlbD0iQXJ0aWtlbDogRmVsZCBJbmhhbHQiPkluaGFsdDwvbGFiZWw+CiAgICAgIDxk +aXYgY2xhc3M9Ind5c2l3eWciIGlkPSJhcnQtd3lzaXd5ZyI+CiAgICAgICAgPGRpdiBjbGFzcz0i +d3ktdG9vbHMiIGlkPSJhcnQtdG9vbHMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Ind5LWJv +ZHkiIGlkPSJhcnQtYm9keSIgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJ0cnVl +IiByb2xlPSJ0ZXh0Ym94IiBhcmlhLW11bHRpbGluZT0idHJ1ZSI+PC9kaXY+CiAgICAgIDwvZGl2 +PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iZGxnLWZvb3QiPjxidXR0b24gY2xh +c3M9ImJ0biBkYW5nZXIiIGlkPSJhcnQtZGVsIiBkYXRhLXRrZXk9ImJ0bi5kZWxldGUiIGRhdGEt +dGxhYmVsPSJLbm9wZiBMw7ZzY2hlbiI+TMO2c2NoZW48L2J1dHRvbj48c3BhbiBjbGFzcz0iZ3Jv +dyI+PC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBnaG9zdCIgaWQ9ImFydC1jYW5jZWwiIGRhdGEt +dGtleT0iYnRuLmNhbmNlbCIgZGF0YS10bGFiZWw9Iktub3BmIEFiYnJlY2hlbiI+QWJicmVjaGVu +PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIHByaW1hcnkiIGlkPSJhcnQtc2F2ZSIgZGF0YS10 +a2V5PSJidG4uc2F2ZSIgZGF0YS10bGFiZWw9Iktub3BmIFNwZWljaGVybiI+U3BlaWNoZXJuPC9i +dXR0b24+PC9kaXY+CjwvZGlhbG9nPgoKPGRpdiBjbGFzcz0idG9hc3QiIGlkPSJ0b2FzdCI+PC9k +aXY+Cgo8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gREFURU4gKyBMT0dJSyA9PT09 +PT09PT09PT09PT09PT09PT0gLS0+CjwhLS0gRGF0ZW4gKGJsZWliZW4gdW50ZXIgYXNzZXRzL2pz +LyDigJQgUHVibGlzaC1aaWVsZSkgLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvZGF0YS1uYXYu +anMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2RhdGEtY29udGVudC5qcyI+PC9z +Y3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9hcnRpa2VsLmpzIj48L3NjcmlwdD48 +IS0tIGFsbGUgQXJ0aWtlbC1Cb2R5cyBnZWJ1ZW5kZWx0ICh3aW5kb3cuUE9SVEFMX0FSVCkgLS0+ +CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvZGF0YS1iYW8uanMiPjwvc2NyaXB0PjwhLS0gQkFPLU1v +ZGVsbCAod2luZG93LlBPUlRBTF9CQU8pIC0tPgo8c2NyaXB0IHNyYz0iZG9rdW1lbnRlL2pzb24v +YmFvLWFydGlrZWwuanMiPjwvc2NyaXB0PjwhLS0gbWlncmllcnRlIEJBTy1BcnRpa2VsICh3aW5k +b3cuUE9SVEFMX0JBT19BUlQpIC0tPgo8c2NyaXB0IHNyYz0iZG9rdW1lbnRlL2pzb24vYmFvLWFy +dC1wNC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9iYW8tYXJ0LXAy +cDEtdmVya2Voci5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9iYW8t +YXJ0LWFsYXJtLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImRva3VtZW50ZS9qc29uL2Jhby1h +cnQtaW5mbzEuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iZG9rdW1lbnRlL2pzb24vYmFvLWFy +dC1pbmZvMi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJkb2t1bWVudGUvanNvbi9iYW8tYXJ0 +LWdydW5kc2FldHplLmpzIj48L3NjcmlwdD4KCjwhLS0gRnVuZGFtZW50OiBOYW1lc3BhY2UsIEV2 +ZW50LUJ1cywgU3RhdGUsIFBlcnNpc3RlbnogLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvY29y +ZS9jb3JlLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2NvcmUv +bW9kYWwuanM/dj1wMTktMyI+PC9zY3JpcHQ+CjwhLS0gRmVhdHVyZS1Nb2R1bGUgLS0+CjxzY3Jp +cHQgc3JjPSJhc3NldHMvanMvZmVhdHVyZXMvbmF2LmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2Ny +aXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL2JyZWFkY3J1bWJzLmpzP3Y9cDE5LTMiPjwvc2Ny +aXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL3RvYy5qcz92PXAxOS0zIj48L3Nj +cmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9mZWVkLmpzP3Y9cDE5LTMiPjwv +c2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL3doYXRzbmV3LmpzP3Y9cDE5 +LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL3BhbmVscy5qcz92 +PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9wYW5lbHMt +ZWRpdC5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJl +cy9saW5rY29sLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2Zl +YXR1cmVzL3Jvc3Rlci1lZGl0LmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNz +ZXRzL2pzL2ZlYXR1cmVzL3NlYXJjaC5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9 +ImFzc2V0cy9qcy9mZWF0dXJlcy9jb21tYW5kcy5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlw +dCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9saW5rY2hlY2suanM/dj1wMTktMyI+PC9zY3JpcHQ+ +CjxzY3JpcHQgc3JjPSJhc3NldHMvanMvZmVhdHVyZXMvYXJ0aWNsZS5qcz92PXAxOS0zIj48L3Nj +cmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9taWdyYXRlLXVpLmpzP3Y9cDE5 +LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2ZlYXR1cmVzL2FyenRsaXN0ZS5q +cz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0dXJlcy9rZW5u +d29lcnRlci5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9mZWF0 +dXJlcy9wcnVlZnVuZy5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImFzc2V0cy9q +cy9mZWF0dXJlcy9pbXByZXNzdW0uanM/dj1wMTktMyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJh +c3NldHMvanMvZmVhdHVyZXMvYmFvLmpzP3Y9cDE5LTMiPjwvc2NyaXB0PjwhLS0gQkFPLVBvcnRh +bCAoTW9kdXMsIERhc2hib2FyZCwgTGFnZS1Xb3Jrc3BhY2UpIC0tPgo8IS0tIEtvbGxhYm9yYXRp +b24gKEF1dG9zYXZlL1ByYWVzZW56L0RpZmYpIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2Nv +bGxhYi9jb2xsYWIuanM/dj1wMTktMyI+PC9zY3JpcHQ+CjwhLS0gQWRtaW4tV2Vya3pldWdlIChI +aXN0b3JpZS9SZXN0b3JlIMK3IEVpbnN0ZWxsdW5nZW4pIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRz +L2pzL2FkbWluL2hpc3RvcmllLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iYXNz +ZXRzL2pzL2FkbWluL3NldHRpbmdzLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0i +YXNzZXRzL2pzL2FkbWluL3JvbGVzLmpzP3Y9cDE5LTMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0i +YXNzZXRzL2pzL2FkbWluL25hdmVkaXQuanM/dj1wMTktMyI+PC9zY3JpcHQ+CjwhLS0gRGF0ZW5w +ZmxlZ2UvVmVyw7ZmZmVudGxpY2hlbiArIEluaXQgKHp1bGV0enQpIC0tPgo8c2NyaXB0IHNyYz0i +YXNzZXRzL2pzL2NvcmUvZGF0YXBmbGVnZS5qcz92PXAxOS0zIj48L3NjcmlwdD4KPHNjcmlwdCBz +cmM9ImFzc2V0cy9qcy9jb3JlL21haW4uanM/dj1wMTktMyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAg +LyogU3RhdGlzY2hlIFRvcGJhci0vRGlhbG9nLUljb25zIGF1cyBkZW0gemVudHJhbGVuIEljb24t +U2F0eiAoUC5pYykgc2V0emVuLiAqLwogIChmdW5jdGlvbiAoKSB7CiAgICB2YXIgUCA9IHdpbmRv +dy5QOyBpZiAoIVApIHJldHVybjsKICAgIGZ1bmN0aW9uIHNldChpZCwgaykgeyB2YXIgbiA9IGRv +Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsgaWYgKG4pIG4uaW5uZXJIVE1MID0gUC5pYyhrKTsg +fQogICAgc2V0KCJzZWFyY2gtaWMiLCAic2VhcmNoIik7IHNldCgiYXotaWMiLCAiYXoiKTsgc2V0 +KCJlZGl0LWljIiwgImVkaXQiKTsgc2V0KCJjb2xsYWItYnRuIiwgImluYm94Iik7IHNldCgiYWRt +aW4taHViLWJ0biIsICJzaGllbGQiKTsKICAgIHNldCgibWVudS1sIiwgIm1lbnUiKTsgc2V0KCJt +ZW51LXIiLCAibWVudSIpOyBzZXQoImNvbGxhcHNlLWwiLCAicGFuZWxMIik7IHNldCgiY29sbGFw +c2UtciIsICJwYW5lbFIiKTsKICAgIHNldCgiYWRkLWljIiwgInBsdXMiKTsgc2V0KCJhcnRhZGQt +aWMiLCAiYXJ0aWNsZSIpOyBzZXQoImF6aC1pYyIsICJheiIpOyBzZXQoImF6LWNsb3NlIiwgIngi +KTsKICAgIHNldCgiYmQteCIsICJ4Iik7IHNldCgiYWQteCIsICJ4Iik7IHNldCgiYmFjay1pYyIs +ICJiYWNrIik7IHNldCgiY3ZlZGl0LWljIiwgImVkaXQiKTsgc2V0KCJjdnBkZi1pYyIsICJwcmlu +dCIpOwogICAgc2V0KCJiYW8taWMiLCAic2hpZWxkIik7CiAgICB2YXIgZXQgPSBkb2N1bWVudC5n +ZXRFbGVtZW50QnlJZCgiZWRpdC10YWciKTsgaWYgKGV0KSBldC5pbnNlcnRBZGphY2VudEhUTUwo +ImFmdGVyYmVnaW4iLCBQLmljKCJlZGl0IikgKyAiICIpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8L2Jv +ZHk+CjwvaHRtbD4K diff --git a/Portal_Union/sync-entpacken.bat b/Portal_Union/sync-entpacken.bat new file mode 100644 index 0000000..e218f9c --- /dev/null +++ b/Portal_Union/sync-entpacken.bat @@ -0,0 +1,48 @@ +@echo off +setlocal +set "BDIR=%~dp0" +echo. +echo === Portal Union: Code aktualisieren === +echo. +powershell -NoProfile -ExecutionPolicy Bypass -Command "$m='### PS'+'CODE ###';$me=[IO.File]::ReadAllText('%~f0');$p=$me.IndexOf($m);$nl=$me.IndexOf([char]10,$p);Invoke-Expression $me.Substring($nl+1)" +echo. +pause +exit /b +### PSCODE ### +$ErrorActionPreference = 'Stop' +$here = $env:BDIR +$root = Split-Path -Parent ($here.TrimEnd('\')) +if (-not (Test-Path -LiteralPath (Join-Path $root 'index.html'))) { + Write-Host ('FEHLER: ' + $root + ' ist nicht die Portal-Wurzel.') -ForegroundColor Red; return +} +Write-Host ('Ziel: ' + $root) +$bundles = Get-ChildItem -LiteralPath $here -Filter 'sync-bundle-*.txt' | Sort-Object Name +if (-not $bundles) { Write-Host 'FEHLER: keine sync-bundle-*.txt gefunden.' -ForegroundColor Red; return } +$flush = { + param($d, $rel, $expLen, $b64) + if (-not $rel) { return $null } + $bytes = [Convert]::FromBase64String($b64) + $full = Join-Path $d ($rel -replace '/', '\') + $pd = Split-Path -Parent $full + if (-not (Test-Path -LiteralPath $pd)) { New-Item -ItemType Directory -Path $pd -Force | Out-Null } + [IO.File]::WriteAllBytes($full, $bytes) + return ($bytes.Length -eq $expLen) +} +$ok = 0; $bad = 0; $rel = $null; $expLen = 0; $sb = New-Object System.Text.StringBuilder +foreach ($b in $bundles) { + Write-Host ('-> ' + $b.Name) + foreach ($line in [IO.File]::ReadAllLines($b.FullName)) { + if ($line.StartsWith('### FILE: ')) { + $r = & $flush $root $rel $expLen $sb.ToString() + if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ } + $meta = $line.Substring(10); $k = $meta.LastIndexOf(' | ') + $rel = $meta.Substring(0, $k); $expLen = [int]$meta.Substring($k + 3); $sb = New-Object System.Text.StringBuilder + } elseif ($line.StartsWith('###')) { continue } + elseif ($line.Length -gt 0) { [void]$sb.Append($line) } + } +} +$r = & $flush $root $rel $expLen $sb.ToString() +if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ } +Write-Host '' +if ($bad -eq 0) { Write-Host ('FERTIG: ' + $ok + ' Dateien.') -ForegroundColor Green } +else { Write-Host ('FERTIG: ' + $ok + ' ok, ' + $bad + ' Fehler.') -ForegroundColor Yellow }